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
在我的开发机器 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