windows上加解密正常,linux上加密正常,解密时发生 如下异常,异常信息如下:

[ERROR] 2018-10-15 09:30:35,998 method:com.iscas.ippc.common.utils.RandomPwd.decrypt(RandomPwd.java:120)
decrypt Exception is Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:991)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:847)
at com.sun.crypto.provider.DESCipher.engineDoFinal(DESCipher.java:314)
at javax.crypto.Cipher.doFinal(Cipher.java:2164)

Des修改方式如下

private static SecretKeySpec getSecretKey() {
//返回生成指定算法密钥生成器的 KeyGenerator 对象
KeyGenerator kg = null;

try {
kg = KeyGenerator.getInstance(KEY_ALGORITHM);

//DES 要求密钥长度为 256
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(KEY_STRING.getBytes());
kg.init(56,random);

//生成一个密钥
SecretKey secretKey = kg.generateKey();

return new SecretKeySpec(secretKey.getEncoded(), KEY_ALGORITHM);// 转换为DES专用密钥

} catch (NoSuchAlgorithmException e) {
logger.error("getSecretKey Exception is "+e.getMessage(),e);
}

return null;
}

主要是SecureRandom 红色部分的问题,

修改前:

kg.init(56,new SecureRandom(key.getBytes()));

修改成下面的代码即可:

SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(KEY_STRING.getBytes());

 

转载于:https://www.cnblogs.com/beautifulFuture/p/9789591.html

JAVA的DES加密解密在windows上测试一切正常,在linux上异常相关推荐

  1. php与java的des加密解密

    与第三方接口对接des加密.解密,第三方提供java的des加密解密demo,特记录PHP与java加密解密. import javax.crypto.*; import javax.crypto.s ...

  2. java des 加密工具的使用,Java中DES加密解密工具类的实现实例

    这篇文章主要介绍了Java实现的DES加密解密工具类,结合具体实例形式分析了Java实现的DES加密解密工具类定义与使用方法,需要的朋友可以参考下 本文实例讲述了Java实现的DES加密解密工具类.分 ...

  3. java 实现 DES加密 解密算法

    DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...

  4. Java实现DES加密解密

    DES(Data Encryption Standard)是一种对称加密算法,所谓对称加密就是加密和解密都是使用同一个密钥. 加密原理: DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位, ...

  5. java ios des加密解密_IOS、java支持DES加密

    转载请注明博客地址:http://blog.csdn.net/mengxiangyue/article/details/40015727 近期在考虑数据加密方面的需求,所以对数据加密简单的看了一下,当 ...

  6. 基于JAVA实现GPG加密解密(Windows+java两种方式)

    最近业务上遇到一个很棘手的问题,客户要求在调用他们的时候要对报文进行加密解密,然后方式就是用pgp的方式进行加密解密,相信有很多小伙伴和我一样刚开始看到这个pgp(或者gpg)加密都是一脸懵,啥玩意儿 ...

  7. Android平台和java平台 DES加密解密互通程序及其不能互通的原因

    为什么80%的码农都做不了架构师?>>>    网上的demo一搜一大堆,但是,基本上都是一知半解(包括我).为什么呢?我在尝试分别在两个平台加密的时候,竟然发现Android DE ...

  8. Java 实现DES加密解密

    import java.security.*; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.cryp ...

  9. 在Java中DES加密/解密的实现[工具类]

    使用前需导入Crypto包: <dependency><groupId>org.springframework.security</groupId><arti ...

  10. Java实现DES加密解密(对称式)

    原文:https://blog.csdn.net/gs12software/article/details/83899389 对称式加密:就是加密和解密都是使用同一个密钥,如DES加密 非对称式加密: ...

最新文章

  1. 这些概念都不懂,别说你会机器学习
  2. 利用数据的商业智能分析工具
  3. zabbix之解决中文乱码
  4. 查询数据库中字段内容相同的记录
  5. 考研初试将近,收好这份准备清单,祝你一战成硕
  6. nginx限制并发连接数和连接请求数
  7. Java学生管理系统项目
  8. PS图片删除需要计算机管理权限,电脑打开ps,显示没有管理员权限
  9. 多加速器驱动AGX的目标检测与车道分割
  10. 【iOS】file not found: .../Build/Products/Debug-iphonesimulator file not found
  11. 《中国近代史纲要》思维导图复习版
  12. 树莓派 Retropie 4.4中文版使用说明 含roms资源
  13. 虚拟服务器 被劫持,服务器DNS被劫持,服务器dns被劫持怎么解决?
  14. 风光过后就崩溃,互联网公司让你心好累
  15. 前端如何设置浏览器网页标签页前的小图标favicon.ico
  16. 织梦有哪些文件需要设置robot的Disallow呢?
  17. android图片压缩总结2
  18. python朋友圈可见_女神说不能每张照片P的同样,因此朋友圈开三天可见,用Python一步解决...
  19. React -- Switch的使用
  20. 必须得会的汽车ECU研发基础—软件开发流程6

热门文章

  1. 激活函数、损失函数及其优化方法总结
  2. python-random
  3. c++ 之 template函数模板
  4. 2021-08-02 修改表
  5. 24小时计时器设计logisim_c++日期、时间和计时器
  6. 软件学报 流程 期刊投稿记录 状态变更 时间
  7. 【Django 2021年最新版教程16】pycharm model模型修改之后如何同步更新到mysql数据库
  8. 区块链 State Machine Replication (SMR)是什么
  9. 区块链 比特币 以太坊 hyperledger fabric智能合约比较 不同的区块链比较
  10. 飞机大战小游戏2.0