javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block t
来源:互联网 发布:网络平台的案例分析 编辑:程序博客网 时间:2024/06/05 04:48
RSA超过长度时报这个错,解决方法是 加密使用117 解密使用128
public static byte[] encryptByPublicKey(byte[] data, PublicKey publicKey){int MAX_ENCRYPT_BLOCK = 117;try{Cipher cipher = Cipher.getInstance(CIPHER);// 编码前设定编码方式及密钥cipher.init(Cipher.ENCRYPT_MODE, publicKey);int inputLen = data.length;ByteArrayOutputStream out = new ByteArrayOutputStream();int offSet = 0;byte[] cache;int i = 0;// 对数据分段加密while (inputLen - offSet > 0) {if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {cache = cipher.doFinal(data, offSet, MAX_ENCRYPT_BLOCK);} else {cache = cipher.doFinal(data, offSet, inputLen - offSet);}out.write(cache, 0, cache.length);i++;offSet = i * MAX_ENCRYPT_BLOCK;}byte[] encryptedData = out.toByteArray();out.close();return encryptedData;} catch (Exception e){e.printStackTrace();return null;}}
public static byte[] decryptByPrivateKey(byte[] encryptedData, PrivateKey privateKey){int MAX_ENCRYPT_BLOCK = 128;try{Cipher cipher = Cipher.getInstance(CIPHER);cipher.init(Cipher.DECRYPT_MODE, privateKey);ByteArrayOutputStream out = new ByteArrayOutputStream();int inputLen = encryptedData.length;int offSet = 0;byte[] cache;int i = 0;// 对数据分段解密while (inputLen - offSet > 0) {if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {cache = cipher.doFinal(encryptedData, offSet, MAX_ENCRYPT_BLOCK);} else {cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet);}out.write(cache, 0, cache.length);i++;offSet = i * MAX_ENCRYPT_BLOCK;}byte[] encryptData = out.toByteArray();out.close();return encryptData;} catch (Exception e){e.printStackTrace();return null;}}
阅读全文
0 0
- javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block t
- javax.crypto.BadPaddingException: Given final block not
- RSA javax.crypto.BadPaddingException: Blocktype mismatch: 0 错误
- javax.crypto.BadPaddingException: Given final block not properly padded解决方案
- 利用java api 实现 RSA算法 解决(javax.crypto.BadPaddingException: Data must start with zero)
- RSA解密时javax.crypto.BadPaddingException: Data must start with zero
- RSA 加密解密 关于javax.crypto.BadPaddingException: Blocktype错误的几种解决方法
- javax.crypto.BadPaddingException: Blocktype mismatch: 0 RSA加密,Android到服务器解密报错
- IBMJCE AND SunJCE(javax.crypto.BadPaddingException:Given final block not properly padded)
- 关于 android AES 部分机器 javax.crypto.BadPaddingException: pad block corrupted
- 使用Java 对称加密(AES),提示"javax.crypto.BadPaddingException: Given final block not properly padded"
- AES加解密的错误提示 javax.crypto.BadPaddingException: pad block corrupted
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- Linux下运行java DES解密失败,报javax.crypto.BadPaddingException:Given final block not properly padded
- Android 中使用java aes加密算法,报错信息android javax.crypto.BadPaddingException: pad block corrupted解决办法
- 细说微服务架构的优势与不足的那点事
- Activity 总结
- 线程 thread 与 进程 process 的区别
- yii2模型中attributeLabels()函数的作用
- React Native开源项目GCore
- javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block t
- ORB_SLAM测试过程
- springMVC–参数绑定常用的注解
- 写作建议
- ie8实现transform:scale放大效果
- wpf 指定音频设备播放测试声音
- 机器学习(周志华)_第十六章 强化学习
- leetcode题解-4. Median of Two Sorted Arrays
- PADS更新PCB封装