下面是从相关信息的链接,其扎基提供。
生成2048位RSA私钥
$ openssl genrsa -out private_key.pem 2048
将私钥转换为PKCS#8格式(以便Java可以读取)
$ openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key.pem -out private_key.der -nocrypt
以DER格式输出公共密钥部分(以便Java可以读取)
$ openssl rsa -in private_key.pem -pubout -outform DER -out public_key.der
Private key
import java.io.*;import java.nio.*;import java.security.*;import java.security.spec.*;public class PrivateKeyReader { public static PrivateKey get(String filename) throws Exception { byte[] keyBytes = Files.readAllBytes(Paths.get(filename)); PKCS8EnpredKeySpec spec = new PKCS8EnpredKeySpec(keyBytes); KeyFactory kf = KeyFactory.getInstance("RSA"); return kf.generatePrivate(spec); }}Public key
import java.io.*;import java.nio.*;import java.security.*;import java.security.spec.*;public class PublicKeyReader { public static PublicKey get(String filename) throws Exception { byte[] keyBytes = Files.readAllBytes(Paths.get(filename)); X509EnpredKeySpec spec = new X509EnpredKeySpec(keyBytes); KeyFactory kf = KeyFactory.getInstance("RSA"); return kf.generatePublic(spec); }}


