Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于Java的OpenSSL模拟_Java_Openssl_Rsa_Public Key Encryption - Fatal编程技术网

用于Java的OpenSSL模拟

用于Java的OpenSSL模拟,java,openssl,rsa,public-key-encryption,Java,Openssl,Rsa,Public Key Encryption,是否有任何方法可以使用Java执行这些OpenSSL操作 openssl genrsa -out private.pem 2048 openssl pkcs8 -topk8 -in private.pem -outform DER -out private.der -nocrypt openssl rsa -in private.pem -pubout -outform DER -out public.der 要生成private.der和public.der,您可以从上的软件推荐中获得更好的

是否有任何方法可以使用Java执行这些OpenSSL操作

openssl genrsa -out private.pem 2048
openssl pkcs8 -topk8 -in private.pem -outform DER -out private.der -nocrypt
openssl rsa -in private.pem -pubout -outform DER -out public.der

要生成private.der和public.der,您可以从上的软件推荐中获得更好的响应。同时,你可能会查看@erstwhileii抱歉,但这两个选项都不可行。该项目来自2005年,没有任何文件。这是一个编程问题,不是对软件的要求。@gagan1411,你是在问如何从java程序中执行openssl命令,还是在问如何在java中执行等效的工作?@erstwhileii是的,我是在问这段代码的java等效代码。不管怎样,下面的答案很好。谢谢如果可以,公钥PKCS#1是否对两个输出都进行了编码?我很确定私钥符合PKCS#8的(内部)ASN.1定义。
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
gen.initialize(2048);
KeyPair pair = gen.generateKeyPair();
try (OutputStream os = Files.newOutputStream(Paths.get("public.der"), StandardOpenOption.CREATE_NEW)) {
  os.write(pair.getPublic().getEncoded());
  os.flush();
}
try (OutputStream os = Files.newOutputStream(Paths.get("private.der"), StandardOpenOption.CREATE_NEW)) {
  os.write(pair.getPrivate().getEncoded());
  os.flush();
}