java cipher用法_java使用Cipher 执行RSA解密报错
padding选取都是一样的,加密成功,解密失败,很奇怪。
#主要代码
public static byte[] rsa_encrypt(byte[] bArr, byte[] bArr2) {
try {
Key a = MyKey.getPublicKey(bArr2);
if(a == null)
System.out.println("get pub key error!");
Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
instance.init(Cipher.ENCRYPT_MODE, a);
return instance.doFinal(bArr);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}public static byte[] rsa_decrypt(byte[] bArr, byte[] bArr2) {
try {
Key a = MyKey.getPrivateKey(bArr2);
if(a == null)
System.out.println("get pri key error!");
Cipher instance = Cipher.getInstance("RSA/ECB/PKCS1Padding");
instance.init(Cipher.DECRYPT_MODE, a);
return instance.doFinal(bArr);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
#报错信息
javax.crypto.BadPaddingException: Decryption error
at sun.security.rsa.RSAPadding.unpadV15(Unknown Source)
at sun.security.rsa.RSAPadding.unpad(Unknown Source)
at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:363)
at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:389)
at javax.crypto.Cipher.doFinal(Cipher.java:2164)
at qqpinyin.EncryptTool.rsa_decrypt(EncryptTool.java:134)
at qqpinyin.main.key_decrypt(main.java:80)
at qqpinyin.main.main(main.java:96)
java cipher用法_java使用Cipher 执行RSA解密报错相关推荐
- java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例
本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...
- java list用法_Java List 用法详解及实例分析
Java List 用法详解及实例分析 Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺 ...
- AES加密/解密报错,Input length must be multiple of 16 when decrypting with padded cipher
背景:需要存储一个类似密钥的字符串,密文存储,并要求能逆向解密出来. 问题描述:使用AES对该字符串进行加密后生成byte数组,使用new String()方法转为字符串后存储到数据库. 从数据库中取 ...
- java jtable组件_java中jtable组件详解实例
java中jtable组件详解实例 java 表格控件 JTable 常用操作详解 JTable 是 Swing 编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处.一 ...
- java ios 字符串_Java 与 iOS使用RSA 加密签名
RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0. ...
- java treemap用法_Java TreeMap put()用法及代码示例
TreeMap的java.util.TreeMap.put()方法用于将映射插入Map.这意味着我们可以将特定的键及其映射到的值插入到特定的映射中.如果传递了现有键,则以前的值将被新值替换.如果传递了 ...
- java future用法_Java中的多线程知识点
如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...
- java foreach用法_Java十大简单性能优化
以下是Java中最容易进行的10个性能优化: 1.使用StringBuilder 这几乎是所有Java代码中的默认设置.尽量避免+操作员.当然,您可能会争辩说它StringBuilder无论如何都是语 ...
- java super用法_Java基础面试题汇总
blog.csdn.net/ThinkWon/article/details/104390612 Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结 ...
最新文章
- wchar用wcout输出正常cout是?
- 云ERP真的靠谱吗?
- C#中提供的精准测试程序运行时间的类Stopwatch
- 关于Mybatis查询结果的封装
- 视图解析jstlView支持便捷的国际化功能
- Git添加文件改动时出错
- 热转印法手工自制单面PCB流程和技巧总结
- 最优化课堂笔记04:非线性规划(考点4-5例题)
- 【机房收费系统】多么痛的领悟
- 阿里云高级技术专家张毅萍:我眼中的边缘计算
- spss多元非线性曲线拟合_快速掌握SPSS数据分析
- 【Java】设计模式在Gourmet咖啡系统中的应用
- MySQL带参数的存储过程小例子
- win7仿win98电脑主题
- kafka最全面试题汇总
- Unable to start embedded Tomcat 解决方式(已解决)
- DAVIS: Densely Annotated VIdeo Segmentation
- JS——判断变量类型方法汇总
- 【待更新】【UWB】UWB 学习、使用及 QCA平台移植实例
- shiro 安全(权限)框架
热门文章
- 旗下首发双模5G+双挖孔全面屏!Redmi K30真机谍照曝光
- 贾跃亭致信债权人:将努力打工还债,请相信我!
- 4699元!三星Galaxy A90 5G国行版开启预售 10月25日正式开售
- 百度再显管理变革决心 副总裁郑子斌离职
- 雅迪发布高端智能电动车G5 这个售价真的会有人买吗?
- 如何取消wlan自动登录 更换wlan帐号
- glide首次加载图片时,出现图片变形,重复一下就正常
- Java成神之路——JVM垃圾回收概览
- mpu6050 z轴校准_大渡口区上门校正检定量具外校-第三方检测计量出校准证书
- 易语言客户端请求http_易语言建立HTTP连接请求源码