AES的秘钥必须注意
AES密钥一般编码存储状态有多种
(1)utf-8
一般使用常用英文字符表示,一个英文字符按照utf-8字符集可以转化为一个8位2进制(byte),16个英文字符恰好16*8=128位对应128密钥
(2)HEX(十六进制字符集)
使用字符集"0123456789abcdef"表示:
字符"1" 表示二进制 0001
字符"a" 表示二进制 1010
所以32个HEX字符恰好32*4=128位对应128密钥
(3)base64
128位的二进制密钥直接编码成Base64字符串
注:
【1】128位AES,对应秘钥128位二进制的密钥(本质对应加密时候数据块为128位)
【2】utf-8的String类型并不能表示任意128位密钥,因为utf-8的字符集没有覆盖到128位任意二进制数,但是HEX字符集和base64字符集能表示任意的128位密钥
【3】网站上免费的AES加解密密钥的字符集一般是utf-8的,使用时注意和HEX、BASE64转换