java使用keytool生成证书的时候怎们样设置公钥和私钥还有keystore密码是什么

java使用keytool生成证书的时候怎们样设置公钥和私钥还有keystore密码是什么,第1张

1私钥公钥不是用户自己输入的,是RSA算法自动生成的,而你输入的密码只是打开那个文件或生成的证书的密码

2密码为“changeit”,而如果尝试几次都不成功的话,就到$JAVA_HOME\jre\lib\security\目录下去配就可以了

 //将byte数组变成RSAPublicKey

public RSAPublicKey bytes2PK(byte[] buf) {

 buf=Base64decode(buf);

 byte size=buf[0];

   byte size2=buf[1];

 byte[] b1 = new byte[size];

   Systemarraycopy(buf,2,b1,0,b1length);

   byte[] b2 = new byte[size2];

 Systemarraycopy(buf,b1length+2,b2,0,b2length);

 BigInteger B1 = new BigInteger(b1);

   BigInteger B2 = new BigInteger(b2);

   RSAPublicKeySpec spec = new RSAPublicKeySpec(B1, B2);//存储的就是这两个大整形数

 KeyFactory keyFactory;

 PublicKey pk = null;

 try {

 keyFactory = KeyFactorygetInstance("RSA");

 pk = keyFactorygeneratePublic(spec);

   } catch (Exception e) {

 eprintStackTrace();

 }

return (RSAPublicKey)pk;

}

公钥所包含的数据,实际上就是modulus、publicExponent这两个。都可以用byte数组的方式表示。我这边为了网络传输方便,将两个byte数组拼接在了一起。实际上分开存储更容易理解。

实例下载本文介绍RSA2加密与解密,RSA2是RSA的加强版本,在密钥长度上采用2048, RSA2比RSA更安全,更可靠, 本人的另一篇文章RSA已经发表,有想了解的可以点开下面的RSA文章

或许你可以换个思路 ,还是用java 写加密,签名,验签

然后用IKVMNET将java包转成C# dll

aspnet 直接调用这个dll 就是了

这样就不用将java 的私匙和公匙转成C#的了

我当时做一个项目就是采用的这个方法来规避 java 和 C# 在 RSA 上的不同

要直接进行java 和net交互比较难,因为net的非对称加密很好没有实现ASN1,而且net 在实现的时候 加了随机数

以上就是关于java使用keytool生成证书的时候怎们样设置公钥和私钥还有keystore密码是什么全部的内容,包括:java使用keytool生成证书的时候怎们样设置公钥和私钥还有keystore密码是什么、在java中使用KeyFactory将给定字符串转换为RSAPublicKey对象时报错公钥非法、关于java中rsa的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9552787.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存