Я вставляю значения в базу данных, но мне нужно зашифровать пароль, а затем вставить в него специальные символы. Я использую базу данных 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, и тестовый ключ добавлен в приведенный выше код.
когда я даю пароль как "test123"
после шифрования AES данные должны быть вставлены в это "÷A5jèŸ2A1::h "
Спасибо за помощь и время друзья …….. Пожалуйста, расскажите, как решить эту проблему
попробуйте как ниже (я думаю, что это функция 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
Вы можете попробовать больше похож на ваш подход, как
mysql_query («SET @password = AES_ENCRYPT (‘». $ v4. «‘, ‘». $ mysecretkey. «‘)»);
$ q = «вставить в значения клиентов (имя, имя пользователя, адрес электронной почты, пароль) (‘$ v1’, ‘$ v2’, ‘$ v3’, @ пароль)»;