[英]MySql AES_DECRYPT & AES_ENCRYPT Key is not working in PHP
[英]Using AES_ENCRYPT AND AES_DECRYPT I don't get returning data
我正在尝试使用AES_ENCRYPT AND AES_DECRYPT ,我确实在 MYSQL 数据字段中得到了一串随机字符,但无法使用 AES_DECRYPT 返回任何内容
我的密码表字段设置为VARBINARY, 600 Length 。
添加到我拥有的数据库中:
mysqli_select_db( $connection , $databaseName );
$request = '
UPDATE person
SET firstName = AES_ENCRYPT("Fred","key123")
WHERE ID="34"';
$result = mysqli_query( $connection , $request );
从我拥有的数据库中选择:
mysqli_select_db( $connection , $databaseName );
$request = "SELECT AES_DECRYPT(firstName, 'key123') FROM account WHERE ID = 34";
$result2 = mysqli_query($connection , $request);
$row = mysqli_fetch_array($result2);
$firstName = $row['firstName'];
echo $firstName;
这只是什么都不返回。 谁能告诉我我哪里出错了? 谢谢!
在更新查询中,您将 ID 用作字符串,而在 SELECT 查询中,它被用作整数,请尝试解决此问题。 您应该将选择更改为WHERE ID = "34"
您正在处理两个不同的表。 您正在更新“人员”表。 然后,您从“帐户”表中进行选择。
改变
$request = "SELECT AES_DECRYPT(firstName, 'key123') FROM account WHERE ID = 34";
对此:
$request = `SELECT AES_DECRYPT(firstName, 'key123') FROM person WHERE ID = "34"`;
尝试这个:
SELECT AES_DECRYPT(AES_ENCRYPT('firstName','mykeystring')FROM account WHERE ID = 34";
解释:
我在网上看到,上面的sql语句使用mykeystring对加密字符串'firstName'进行解密,并返回原始字符串firstName。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.