AES 在 Linux 下解密错误

来源:互联网 发布:网上配眼镜靠谱吗 知乎 编辑:程序博客网 时间:2024/06/07 13:40

javax.crypto.BadPaddingException:Given final block not properly padded。

解决方法

修改前代码:

KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128, new SecureRandom(key.getBytes()));SecretKey secretKey = kgen.generateKey();

以上方法在Windows下可以正常运行,且加解密成功,但是在 Linux 下运行时,解密时会报错:Given final block not properly padded。

修改后代码:

KeyGenerator kgen = KeyGenerator.getInstance("AES");SecureRandom random = SecureRandom.getInstance("SHA1PRNG");//①random.setSeed(key.getBytes());kgen.init(128, random);

参考文章:

  1. java中的SecureRandom在linux中的实现
  2. JAVA AES加解密在linux中的问题
0 0
原创粉丝点击