AES在windows下正常加解密,Linux下加密正常,解密异常(javax.crypto.BadPaddingException: pad block co

简介: AES在windows下正常加解密,Linux下加密正常,解密异常(javax.crypto.BadPaddingException: pad block co

avax.crypto.BadPaddingException: pad block corrupted 异常,恶心了我半个小时。

废话不多说,上代码

将加密key转为byte数组片段

KeyGenerator keygen=KeyGenerator.getInstance("AES");
SecureRandom securerandom = new SecureRandom(tohash256Deal(key)); 替换为下面的两行
keygen.init(weishu, securerandom);


/**
 * SecureRandom 实现完全随操作系统本身的內部状态,
 * 除非调用方在调用 getInstance 方法之后又调用了 setSeed 方法;
 * 该实现在 windows 上每次生成的 key 都相同,
 * 但是在 solaris 或部分 linux 系统上则不同。
 * 所以  SecureRandom securerandom = new SecureRandom(tohash256Deal(key)); 替换为下面内容
 * 以适应linux的变化
 */

  SecureRandom securerandom = SecureRandom.getInstance("SHA1PRNG" );
  securerandom.setSeed(tohash256Deal(key));

其他地方不变,即可解决问题。

目录
相关文章
|
Linux 数据安全/隐私保护 Windows
aes加密在linux下会生成随机key的解决办法
aes加密在linux下会生成随机key的解决办法
250 2
|
Linux 网络安全 数据安全/隐私保护
Linux vsFTPd服务详解——文件加密传输配置
Linux vsFTPd服务详解——文件加密传输配置
565 2
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
12509 3
|
Oracle 关系型数据库 数据库
[windows]远程桌面失败提示CredSSP加密修正
[windows]远程桌面失败提示CredSSP加密修正
3361 6
|
存储 算法 Linux
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
|
安全 Linux 网络安全
|
存储 安全 Linux
Linux存储安全:数据加密的实践与策略
【8月更文挑战第19天】数据加密是Linux存储安全的基石之一。通过使用LUKS进行磁盘加密和使用GnuPG进行文件加密,可以显著提高数据的安全性。
649 0
|
Linux 数据安全/隐私保护
自动化脚本之加密内容解密适用于Linux
自动化脚本之加密内容解密适用于Linux
234 1
|
存储 安全 数据安全/隐私保护
【Windows manage-bde 命令】BitLocker 2.0:一步步解锁您的加密驱动器
【Windows manage-bde 命令】BitLocker 2.0:一步步解锁您的加密驱动器
8381 0
|
Ubuntu Java Linux
Ubuntu20.04下载jdk遇到各种奇怪问题大集,Linux如何将默认的OpenJDK切换成自己安装的JDK版本(以JDK1.8为例),无需卸载原有OpenJDK,Some packages co
Ubuntu20.04下载jdk遇到各种奇怪问题大集,Linux如何将默认的OpenJDK切换成自己安装的JDK版本(以JDK1.8为例),无需卸载原有OpenJDK,Some packages co