openssl生成的私钥跟java生成的私钥不一样
来源:6-9 从java.security学习Cipher

慕标6347362
2023-02-24
使用openssl生成以下私钥,为什么跟java打印出来的私钥不一样
写回答
1回答
-
马里布
2023-03-01
openssl 输出的是 pem格式的密钥,而这段 java 代码输出的密钥中的大数字(采用hex十六进制格式表达)。
本质上都是表达同样的东西,采用的表达方式不同而已。如果把 java RSAPrivateKey 对象中的 e p q d n 等数字按照标准格式 pem 进行封装输出,就能得到与 openssl 一样的可视格式。
可以参考下面的代码,可以输出pem格式:
PrivateKey key = __keyPair__.getPrivate(); StringWriter writer = new StringWriter(); try (JcaPEMWriter pw = new JcaPEMWriter(writer)) { pw.writeObject(key); } System.out.println(writer.toString());
其中用到的依赖是:
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk18on</artifactId> <version>1.71</version> </dependency>
00
相似问题