Closed YaroED closed 6 months ago
128 / 8 = 16(字节)
16 进制串中,0xff = 11111111 = 8位 = 1字节 = 字符串长度2
后端的包是传16位,我传16位的utf8串,加密会报错。这个是一定要32位的16进制串吗?
@JuneAndGreen
密钥一般是随机的比特序列,一般随机性比较好的密钥,用字符串是无法表示的,所以一般密钥都会使用 16 进制编码进行表示。 你后端传的 16 位字符串,那你将 16 位字符串做 Hex 编码后变成 32 位的 16 进制字符串传入即可。
后端的包是传16位,我传16位的utf8串,加密会报错。这个是一定要32位的16进制串吗?
是的,你需要手动转成对应的hex串,也可以转成最原始的字节数组
sm4.encrypt的key要求是128比特,可是demo那里的字符是32位。