加密代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
解密代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
解密代码
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
偶尔会报错 抛出异常,
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
原因 加密后的byte数组是不能强制转换成字符串的,换言之:字符串和byte数组在这种情况下不是互逆的;要避免这种情况,我们需要做一些修订,可以考虑将二进制数据转换成十六进制表示
解决方案
二进制转换成16进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
16进制转换为二进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
测试结果,问题解决
1 2 3 4 5 6 7 8 9 10 11 |
|
测试结果如下:
加密前:test
加密后:73C58BAFE578C59366D8C995CD0B9D6D
解密后:test