Mysql:加密数据库中的旧数据

时间:2012-05-18 05:20:21

标签: mysql encryption aes

我的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来比较字符串

拜托,你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

我觉得你的列的数据类型是“varchar / char”。这就是数据被破坏的原因。显然你应该以blob格式存储任何AES_ENCRYPTed

我认为这是因为varchar字段无法处理从加密产生的某些字符。

引用AES_ENCRYPT

的MYSQL文档

“AES_ENCRYPT()加密字符串并返回二进制字符串”

因此,您需要一个BLOB(二进制大对象)。