MySQL AES_DECRYPT wrong/strange 结果

MySQL AES_DECRYPT wrong/strange result

在我的开发机器 WAMP 下,AES_ENCRYPT 和 AES_DECRYPT 没有按要求工作,我也用 ENCODE 和 DECODE 进行了测试,同样发生了......我不明白为什么......

SELECT 
AES_ENCRYPT('text', SHA1('My secret passphrase')) as enc, 
AES_DECRYPT(AES_ENCRYPT('text', SHA1('My secret passphrase')), SHA1('My secret passphrase')) as denc

结果:

编码:3278167d9d630327c74d83067964c9b6
denc: 74657874

加密后的文字不好看,解密也不对

有什么建议吗?

它甚至在您这边工作,但您看到的是 blob 数据。

编码:74 65 78 74

74=t 65=e 78=x 74=t,将它们相加得到'text'

ascii table 这里:http://www.asciitable.com/

尝试使用 cast 使其更明显:

SELECT cast(AES_ENCRYPT('text', SHA1('My secret passphrase')) as char(100)) as enc, 
cast(AES_DECRYPT(AES_ENCRYPT('text', SHA1('My secret passphrase')), SHA1('My secret passphrase')) as char(100)) as denc