我将值插入数据库但我需要加密密码,然后将特殊字符插入其中。我正在使用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 "
感谢您的帮助和时间朋友........请告诉我们如何解决这个问题
答案 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)”;