php Aes_Encrypt致命错误

时间:2014-12-03 04:38:06

标签: php mysql encryption aes

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

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中获取数据,并在上面的代码中添加了测试密钥。

当我在AES加密后将密码设为"test123"时,必须插入数据"÷A5jèŸ2A1::h "

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

2 个答案:

答案 0 :(得分:2)

尝试如下(我认为它是一个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

答案 1 :(得分:0)

您可以尝试更类似于您的方法,例如

mysql_query(“SET @password = AES_ENCRYPT('”。$ v4。“','”。$ mysecretkey。“')”);

$ q =“插入客户(名称,用户名,电子邮件,密码)值('$ v1','$ v2','$ v3',@ password)”;