Encryption 在java程序中使用Keytool?

Encryption 在java程序中使用Keytool?,encryption,rsa,private-key,public-key,Encryption,Rsa,Private Key,Public Key,我正在尝试编写一个程序,以PKCS#8,der格式生成RSA密钥private.der和public.der 我可以在OpenSSL中手动完成,但我不知道如何在java中完成。我读过关于Keytool的文章,你也可以手动使用。但是我想在程序中自动化这个过程,以便在每次运行程序时生成一个唯一的可用密钥对,并将它们导出到一个文件夹中 任何帮助都将不胜感激 密钥生成工作如下: KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");

我正在尝试编写一个程序,以PKCS#8,der格式生成RSA密钥private.der和public.der

我可以在OpenSSL中手动完成,但我不知道如何在java中完成。我读过关于Keytool的文章,你也可以手动使用。但是我想在程序中自动化这个过程,以便在每次运行程序时生成一个唯一的可用密钥对,并将它们导出到一个文件夹中


任何帮助都将不胜感激

密钥生成工作如下:

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()
获取编码版本。

我如何才能导出此版本?我尝试转换为字节,然后写入fileoutputstream。但是它说我不能把rsaPriv转换成字节?编辑:没关系,我知道了。感谢您的帮助,很抱歉,我以前看过这个源代码,但无法理解如何实现它。@user3579224请指出确切的错误和您的运行时。我不认为您在stacktrace或日志文件.Drunix中的任何地方都有字符串
“cannot convert rsaPriv to bytes”
——处理简单地向您询问答案而不做任何研究或努力的问题的首选方法是不回答它们。对这类问题的回答不应该投票表决。请看。@jww我认为这个问题至少显示了很少的研究。也许还不够,但OP至少发现了keytool。有人可能会说,这不是自己所需的努力水平,但不是“没有研究”。老实说,我已经在这段简单的代码上停留了大约2周,研究了好几个小时。密码学对我来说是一个新概念,我一直在尽可能多地学习,但所有在线教程都显示了外部程序,因为了解java中的所有操作的来源有限。我有一个代码,我正试图开始工作,这两行简单的代码“privkey.getEncoded();&pubKey.getEncoded();”为我解决了这个问题。我试图将密钥转换成一个文件并进行加密,这会不断抛出错误。我正想得到任何可能的帮助,谢谢!和。如果其他方法都失败了,那就试试看。