gpt4 book ai didi

mysql - AES_ENCRYPT/AES_DECRYPT 中不正确的字符串值错误

转载 作者:行者123 更新时间:2023-11-29 01:38:11 25 4
gpt4 key购买 nike

我正在介绍 MYSQL 中的加密功能。

只写了一个简单的SQL语句,将加密条目添加到字段中

INSERT INTO test_table (field1) VALUES(aes_encrypt('fieldentry','password'))

当我执行 SQL 时,出现以下错误

Error 1366: Incorrect string value: '\xC7\xE13\xC4\xF4!...' for column 'field1' at row 1 SQL Statement - CHANGE COLUMN field1 VARCHAR(255) NOT NULL COMMENT ''

现在我读到它可能与字符集有关,并尝试将其从 utf8-default 排序规则更改为 utf8mb4 - 建议的默认排序规则,但这没有任何区别。

我还尝试将列类型从 VARCHAR 更改为 VARBINARY。然而,当我尝试以下检索数据时,SQL 语句成功运行:

SELECT AES_DECRYPT(field1, '12345') AS endata FROM test_table
Do Until rst.EOF
Response.Write(rst("endata"))
rst.movenext
Loop

循环运行但没有返回值(空行)

我只是想在函数 AES_ENCRYPT/AES_DECRYPT 中寻找一个简单明了的加密内容,然后使用密码解密我的数据。

最佳答案

AES_ENCRYPT() encrypts a string and returns a binary string. AES_DECRYPT() decrypts the encrypted string and returns the original string.

因此,您应该将 field1firstname 的类型从 VARCHAR(255) 更改为 VARBINARY(255)。它将解决问题..

编辑:对于类型不匹配..请试试这个..

SELECT *, 
CAST(AES_DECRYPT(field1, 'mypassword') AS CHAR(50)) end_data
FROM user

希望这有帮助..

关于mysql - AES_ENCRYPT/AES_DECRYPT 中不正确的字符串值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33454252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com