JAVA的DES加密解密在windows上测试一切正常,在linux上异常
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上异常相关推荐
- php与java的des加密解密
与第三方接口对接des加密.解密,第三方提供java的des加密解密demo,特记录PHP与java加密解密. import javax.crypto.*; import javax.crypto.s ...
- java des 加密工具的使用,Java中DES加密解密工具类的实现实例
这篇文章主要介绍了Java实现的DES加密解密工具类,结合具体实例形式分析了Java实现的DES加密解密工具类定义与使用方法,需要的朋友可以参考下 本文实例讲述了Java实现的DES加密解密工具类.分 ...
- java 实现 DES加密 解密算法
DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种: ...
- Java实现DES加密解密
DES(Data Encryption Standard)是一种对称加密算法,所谓对称加密就是加密和解密都是使用同一个密钥. 加密原理: DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位, ...
- java ios des加密解密_IOS、java支持DES加密
转载请注明博客地址:http://blog.csdn.net/mengxiangyue/article/details/40015727 近期在考虑数据加密方面的需求,所以对数据加密简单的看了一下,当 ...
- 基于JAVA实现GPG加密解密(Windows+java两种方式)
最近业务上遇到一个很棘手的问题,客户要求在调用他们的时候要对报文进行加密解密,然后方式就是用pgp的方式进行加密解密,相信有很多小伙伴和我一样刚开始看到这个pgp(或者gpg)加密都是一脸懵,啥玩意儿 ...
- Android平台和java平台 DES加密解密互通程序及其不能互通的原因
为什么80%的码农都做不了架构师?>>> 网上的demo一搜一大堆,但是,基本上都是一知半解(包括我).为什么呢?我在尝试分别在两个平台加密的时候,竟然发现Android DE ...
- Java 实现DES加密解密
import java.security.*; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.cryp ...
- 在Java中DES加密/解密的实现[工具类]
使用前需导入Crypto包: <dependency><groupId>org.springframework.security</groupId><arti ...
- Java实现DES加密解密(对称式)
原文:https://blog.csdn.net/gs12software/article/details/83899389 对称式加密:就是加密和解密都是使用同一个密钥,如DES加密 非对称式加密: ...
最新文章
- 这些概念都不懂,别说你会机器学习
- 利用数据的商业智能分析工具
- zabbix之解决中文乱码
- 查询数据库中字段内容相同的记录
- 考研初试将近,收好这份准备清单,祝你一战成硕
- nginx限制并发连接数和连接请求数
- Java学生管理系统项目
- PS图片删除需要计算机管理权限,电脑打开ps,显示没有管理员权限
- 多加速器驱动AGX的目标检测与车道分割
- 【iOS】file not found: .../Build/Products/Debug-iphonesimulator file not found
- 《中国近代史纲要》思维导图复习版
- 树莓派 Retropie 4.4中文版使用说明 含roms资源
- 虚拟服务器 被劫持,服务器DNS被劫持,服务器dns被劫持怎么解决?
- 风光过后就崩溃,互联网公司让你心好累
- 前端如何设置浏览器网页标签页前的小图标favicon.ico
- 织梦有哪些文件需要设置robot的Disallow呢?
- android图片压缩总结2
- python朋友圈可见_女神说不能每张照片P的同样,因此朋友圈开三天可见,用Python一步解决...
- React -- Switch的使用
- 必须得会的汽车ECU研发基础—软件开发流程6
热门文章
- 激活函数、损失函数及其优化方法总结
- python-random
- c++ 之 template函数模板
- 2021-08-02 修改表
- 24小时计时器设计logisim_c++日期、时间和计时器
- 软件学报 流程 期刊投稿记录 状态变更 时间
- 【Django 2021年最新版教程16】pycharm model模型修改之后如何同步更新到mysql数据库
- 区块链 State Machine Replication (SMR)是什么
- 区块链 比特币 以太坊 hyperledger fabric智能合约比较 不同的区块链比较
- 飞机大战小游戏2.0