AES 加密和解密未给出正确的结果

问题描述 投票:0回答:1
SELECT AES_ENCRYPT('fmale', '2b7e151628aed2a6abf7158809cf4f3c') FROM tmp_categorywise_salary_rpt LIMIT 1; 

SELECT CAST(AES_DECRYPT('þ*Ë(|¸R°¢8Ç©', '2b7e151628aed2a6abf7158809cf4f3c') as UTF8) FROM tmp_categorywise_salary_rpt LIMIT 1;

AES_ENCRYPT 给我的加密值为 þ*Ë(|¸R°¢8Ç© 但使用 AES_DECRYPT 给我 null

期望:它应该给我返回非加密值作为女性

mysql encryption utf-8 aes collate
1个回答
0
投票

您正在尝试解密二进制值,手动复制它会导致丢失字符

您可以使用 base64 来打印输出,如下所示

SELECT TO_BASE64(AES_ENCRYPT('fmale', '2b7e151628aed2a6abf7158809cf4f3c')) FROM tmp_categorywise_salary_rpt LIMIT 1;

SELECT CAST(AES_DECRYPT(FROM_BASE64('/irLKHwbuBBSGrCiOAzHqQ=='), '2b7e151628aed2a6abf7158809cf4f3c') AS CHAR);

正如我在我的案例中测试过的那样

加密值:/irLKHwbuBBSGrCiOAzHqQ==

解密值:fmale

© www.soinside.com 2019 - 2024. All rights reserved.