繁体   English   中英

使用 AES_ENCRYPT AND AES_DECRYPT 我没有得到返回数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM