我的mysql问题很小。我有表中的数据,我想加密它们。我使用这个命令:
UPDATE `Name_Table` SET `COL1`=(SELECT AES_ENCRYPT( `COL1`, 'difficultKey')) WHERE 1
和
UPDATE `Name_Table` SET `COL1`=AES_ENCRYPT( `COL1`, 'difficultKey') WHERE 1
但是这个推荐破坏了我的数据(我无法解密)。你能救我吗?
我用这个: - phpmyadmin(bookmark - sql) - utf8_general来比较字符串
拜托,你能帮助我吗?
答案 0 :(得分:1)
我觉得你的列的数据类型是“varchar / char”。这就是数据被破坏的原因。显然你应该以blob格式存储任何AES_ENCRYPTed
我认为这是因为varchar字段无法处理从加密产生的某些字符。
引用AES_ENCRYPT。
的MYSQL文档“AES_ENCRYPT()加密字符串并返回二进制字符串”
因此,您需要一个BLOB(二进制大对象)。