【发布时间】:2016-01-31 22:58:13
【问题描述】:
我正在向自己介绍 MYSQL 中的加密功能。
只写了一个简单的 SQL 语句,将加密条目添加到字段中
INSERT INTO test_table (field1) VALUES(aes_encrypt('fieldentry','password'))
执行 SQL 时出现以下错误
错误 1366:不正确的字符串值:'\xC7\xE13\xC4\xF4!...' for column 'field1' at row 1 SQL Statement - CHANGE COLUMN
field1VARCHAR(255) NOT NULL COMMENT ''
现在我读到它可能与 CHARACTER SET 有关,并尝试将其从 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 中的密码解密我的数据。
【问题讨论】:
标签: mysql sql encryption encoding aes