打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JAVA公钥加密,私钥解密(跟帖有分),该怎么解决
JAVA公钥加密,私钥解密(跟帖有分)
如何实现用JAVA读取证书中的公钥加密数据,然后用证书中的私钥去解密?
也就是实现数字信封的功能。
在网上查了些资料,都是用私钥加密,公钥解密的。改了段代码,但是有错误:
Java code
......................PublicKey pk1 = cf.getPublicKey();           // 得到证书文件携带的公钥Cipher c1 = Cipher.getInstance("RSA/ECB/PKCS1Padding");      // 定义算法:RSAc1.init(Cipher.ENCRYPT_MODE, pk1);  上面这句会出异常:java.security.InvalidKeyException: No installed provider supports this key: sun.security.provider.DSAPublicKeyImpl...........................


是否可以用 Cipher 来实现?
如果不行,可以用什么方法来实现公钥加密,私钥解密?

------解决方案--------------------
不懂这方面的,帮顶。
------解决方案--------------------
跟帖有分
------解决方案--------------------
core java卷二第十章 安全,可能有用。如果没有这本书可以下个电子版查一下相关内容。
------解决方案--------------------
我是来打酱油的
------解决方案--------------------
JCE 支持非对称加密的私钥加密公钥解密、公钥加密和私钥解密。

PS:cf 是什么?光靠这三行代码,一行异常看不出来什么。
------解决方案--------------------
跟贴有分,帮忙顶
------解决方案--------------------
DSA 不是非对称加密算法,而是数字签名算法!
------解决方案--------------------
跟贴有分,帮忙顶
------解决方案--------------------
帮 顶!
------解决方案--------------------
你那个证书是怎么生成是用 keytool 工具产生的么?具体是怎么生成的,我去生成一个来试试看。
------解决方案--------------------
修改bea下jdk1.4的安全文件,使其支持RSA/ECB/PCSK#1的填充方式。
1) 将bcprov-jdk14-143.Jar分别复制到下列路径
C:\bea8\jdk142_08\jre\lib\ 
C:\bea8\jdk142_08\jre\lib\ext\
2) 修改C:\bea8\jdk142_08\jre\lib\security\java.Security文件
在文件最后添加以下内容
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.net.ssl.internal.ssl.Provider
security.provider.3=org.bouncycastle.jce.provider.BouncyCastleProvider


Java code
            SecretKeySpec key = new SecretKeySpec(aeskeyByte, "AES");            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");            cipher.init(Cipher.DECRYPT_MODE, key);// 初始化            byte[] result = cipher.doFinal(buf);// 解密            return result;
------解决方案--------------------
很现实很有用的问题,我也很想知道答案!
支持一下本贴,别掉下去!
------解决方案--------------------
支持下 以前看过算法 但是后来没深入 无法提供帮助!
------解决方案--------------------
跟帖有分?
------解决方案--------------------
怎么变成在讨论公钥私钥如何产生了?公钥私钥是配对的,至于其pair如何产生通过Integer还是不通过Integer有关系吗?

RSA可以用来签名或加密,公钥进行加密,私钥来解密,现在问题是什么呢?产生了错误...再看看,出于兴趣,一起学习下 看也是很少有人搞这个领域
------解决方案--------------------
跟帖有分.....
------解决方案--------------------
学过一阵子加密技术,学的不精,学习吧,帮顶
------解决方案--------------------
探讨

To bao110908 :
已经能够从 BigInterger生成一个 PublicKey
但是,还是有些不一样:
通过KeyPair生成的privatekey是:Sun RSA private CRT key, 1024 bits
但是通过 PrivateKey priKey = kf.generatePrivate(privateSpec); 生成的,是Sun RSA privat……
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
RSA/ECB/PKCS1Padding加密
循序渐进学加密
Java与C++通过CBC、blowfish互相加解密
Java加密和数字签名编程快速入门
非对称加密算法---加密学习笔记(四)
C#与JAVA平台RSA算法交互示例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服