工具
- mysql 8
- navicat
初级加密解密
最无脑的加密,原文为aaa,密钥为aaabbbccc
SELECT AES_ENCRYPT("aaa","aaabbbccc");
加密出的密文是一串二进制乱码:
但由于是乱码,解析过程就会出现问题:
SELECT AES_DECRYPT('8�º�{DTpВ�+b','aaabbbccc');
密文转十六进制
为了能看懂加密结果及更好的解析,我们将加密结果转换成十六进制密文:
SELECT HEX(AES_ENCRYPT("aaa","aaabbbccc"))
解析过程如下,将得到的十六进制字符串转化成二进制,然后用密钥进行反解析即可:
SELECT AES_DECRYPT(UNHEX('380A8AC2BAF1AA7B445470D092EF2B62'), 'aaabbbccc');
更高级的加密
我们也可以将密钥aaabbbccc通过MD5进行加密:
SELECT MD5('aaabbbccc')
这里的字符串就是将aaabbbccc通过MD5加密后的密文。
然后用aaabbbccc加密后的字符串对原文进行加密:
SELECT HEX(AES_ENCRYPT("aaa","d1aaf4767a3c10a473407a4e47b02da6"));
然后用aaabbbccc的MD5加密后的密文当作密钥进行解密:
SELECT AES_DECRYPT(UNHEX('B3B53CC242DDE3103A0B096E0CCD2385'), MD5('aaabbbccc'))