JAVA的AES加密解密在windows上测试正常,但Linux服务器上却有异常!
2016-10-19 10:19
477 查看
1、查看日志打印如下异常:javax.crypto.BadPaddingException: Given final block not properly padded
原因:是在生成key的时候就出现错误了
2、修改步骤如下:
原来代码:
修改后代码:
我是从这里找到解决方案的:http://wenku.baidu.com/link?url=wOibKHENi2Z5gFOL5prjGBE8RES1dZEZlrvfY1NTl89QJWtTwXUNLmgEXVYWGBGXR25oRvOKPJTI5M3o95KW0yIHwgFVEnJiZt1-0YvRQua
原因:是在生成key的时候就出现错误了
2、修改步骤如下:
原来代码:
<span style="font-family:Microsoft YaHei;font-size:14px;">KeyGenerator generator = KeyGenerator.getInstance("DES"); <span style="color:#cc0000;">generator.init(new SecureRandom(KEY_STR.getBytes()));</span> key = generator.generateKey(); generator = null;</span>
修改后代码:
<span style="font-family:Microsoft YaHei;font-size:14px;"><span style="color:#3f3f3f;">KeyGenerator generator = KeyGenerator.getInstance("DES"); //这样实例化SecureRandom对象才可以 </span><span style="color:#cc0000;">SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); <span style="white-space: pre;"> </span>random.setSeed(KEY_STR.getBytes()); <span style="white-space: pre;"> </span>generator.init(random);</span><span style="color:#3f3f3f;"> key = generator.generateKey(); generator = null;</span></span>把红色的代码修改后就可以了!就是SecureRandom创建的方式不同而引起的错误,具体的情况还不清楚。
我是从这里找到解决方案的:http://wenku.baidu.com/link?url=wOibKHENi2Z5gFOL5prjGBE8RES1dZEZlrvfY1NTl89QJWtTwXUNLmgEXVYWGBGXR25oRvOKPJTI5M3o95KW0yIHwgFVEnJiZt1-0YvRQua
相关文章推荐
- AES在Android、JAVA端正常加密解密
- java AES加密、解密(兼容windows和linux)
- AES在Android、JAVA端正常加密解密
- Aes加密(Android与Java后台可以正常加解密 )
- AES在Android、JAVA端正常加密解密
- AES在Android、JAVA端正常加密解密
- JAVA AES加解密windows上正常,但是在linux中不正常的问题
- 【java】AES加密解密|及Base64的使用
- Java AES加密解密算法
- Java实现AES加密解密
- java加解密工具类,支持RSA,AES(未测试)
- AES加密时的 java.security.InvalidKeyException: Illegal key size 异常
- JAVA的对称加密算法AES——加密和解密
- JAVA 与C# 的AES的加密函数、解密函数,加密解密结果一致
- JavaScript前端和Java后端的AES加密和解密
- RSA AES 前端JS与后台JAVA的加密解密的是实现
- AES加密,解密封装。以及解密异常解决
- java使用AES加密解密 AES-128-ECB加密
- JAVA AES加密解密
- Java AES加密解密的简单实现方法