-1

我对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(书签 - sql) - utf8_general 来比较字符串

拜托,你能帮帮我吗?

4

1 回答 1

1

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

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

引用AES_ENCRYPT的 MYSQL 文档。

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

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

于 2012-05-18T05:36:43.627 回答