【问题标题】:Using Keytool in a java program?在Java程序中使用Keytool?
【发布时间】:2014-05-04 18:54:40
【问题描述】:

我正在尝试编写一个程序来生成 PKCS#8、DER 格式的 RSA 密钥 private.der 和 public.der。

我可以轻松地在 OpenSSL 中手动完成,但我不知道如何在 java 中完成。我阅读了您也可以手动使用的 Keytool。但我想在程序中自动执行该过程,以在每次运行程序时生成唯一可用的密钥对,并将它们导出到文件夹中。

任何帮助将不胜感激。

【问题讨论】:

标签: encryption rsa private-key public-key


【解决方案1】:

密钥生成工作如下:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(2048); // Keysize
KeyPair kp = keyGen.genKeyPair():
PrivateKey privKey = kp.getPrivate();
PublicKey pubKey = kp.getPublic();

然后使用privKey.getEncoded()pubKey.getEncoded() 获取编码版本。

【讨论】:

  • 我怎样才能导出这个?我尝试转换为字节然后写入文件输出流。但它说我不能将 rsaPriv 转换为字节?编辑:没关系,我想通了。感谢您的帮助,对不起,我以前看过这个源,但无法弄清楚如何实现它。
  • @user3579224 请指出确切的错误和您的运行时间。我认为您的堆栈跟踪或日志文件中的任何位置都没有字符串 "cannot convert rsaPriv to bytes"
  • Drunix - 处理那些没有研究或努力就简单地询问您答案的问题的首选方法是回答它们。对这些类型的问题的回答不应该被投票。见Question quality is dropping on Stack Overflow
  • @jww 我认为这个问题至少显示了最少的研究。也许还不够,但 OP 至少发现了关于 keytool 的信息。可以说这不是自己努力的要求,但也不是“没有研究”。
  • 老实说,我已经被这个简单的代码卡住了大约 2 周,研究了好几个小时。密码学对我来说是一个新概念,我一直在尽可能多地学习,但是所有在线教程都显示了外部程序,因为只有有限的资源可以查看 Java 中的所有内容。我有一个我试图开始工作的代码,以及那两条简单的行,“privkey.getEncoded(); & pubKey.getEncoded();”是什么为我解决了它。我试图只将密钥转换为文件并加密,它不断抛出错误。想要任何可能的帮助,所以谢谢!
猜你喜欢
  • 2011-06-17
  • 2015-08-09
  • 2018-05-04
  • 1970-01-01
  • 2011-09-14
  • 2011-03-10
  • 2021-02-03
  • 1970-01-01
相关资源
最近更新 更多