php Aes_Encrypt致命错误

问题描述:

我将值插入数据库,但我需要密码进行加密,然后插入特殊字符。我正在使用mysql数据库,编码是在正常的php程序中完成的。php Aes_Encrypt致命错误

PHP PROGRAM 


$mysecretkey = 'd5k8b6q3'; 
$password=(AES_ENCRYPT('$v4','$mysecretkey')); // problem is here in encryption 
$q="insert into customers (name,username,email,password) values('$v1','$v2','$v3','$password')"; 

$s= mysql_query($q); 

        if(!$s) 
        { 
         $r["re"]="Inserting problem in database"; 
         print(json_encode($r)); 
        } 
        else 
        { 
         $r["re"]="Record inserted successfully"; 
        } 

但当我代替执行其加密的我得到错误

Fatal error: Call to undefined function AES_ENCRYPT() in ..../checking.php on line 5 

如何解决这个问题和其他细节的代码是在数据库中的密码字段是VARCHAR,我取的上面的代码中添加了来自POST变量v1,v2,v3,v4和测试密钥的数据。

当我给的密码"test123" AES加密后的数据必须插入这是"÷A5jèŸ2A1::h "

感谢您的帮助和时间的朋友........请告知如何解决这个问题

+1

您需要在AES_ENCRYPT()部分放置“”。此外,使用'AES_ENCRYPT' MYSQL函数[不是很安全](http://security.stackexchange.com/questions/45838/is-why-should-you-avoid-aes-in-mysql-true)默认。 – 2014-12-03 04:42:30

+0

当然,我会尽力让你知道我的朋友@MisterDood – 2014-12-03 05:07:42

尝试像下面(我认为这是一个MySQL的功能,而不是PHP所以在查询中使用直接)

$q="insert into customers (name,username,email,password) values('$v1','$v2','$v3',AES_ENCRYPT('".$v4."','".$mysecretkey."'))"; 

$q="insert into customers (name,username,email,password) values('$v1','$v2','$v3',AES_ENCRYPT('$v4','$mysecretkey'))"; 

更多: - http://www.w3resource.com/mysql/encryption-and-compression-functions/aes_encrypt%28%29.php

+0

谢谢我会尽力让你知道这个....但我试过第二种方式,你说它不工作@ Rakesh Sharma – 2014-12-03 05:05:19

+1

都是一些引用差异。试试哪个会适合你 – 2014-12-03 05:23:22

+0

雅第一个人很好,谢谢兄弟我不会忘记你在我的生活中。我坐了三天,玩它,但你在3分钟内@Rakesh Sharma – 2014-12-03 05:36:56

你可以尝试更类似于你的做法像

的mysql_query( “SET @密码= AES_ENCRYPT('” $ V4。 “ ''” $ mysecretkey。 “')”); ('$ v1','$ v2','$ v3',@ password)插入客户(名称,用户名,电子邮件,密码)。

+0

亲切的话我会检查它,让你知道这个 – 2014-12-03 06:34:14