我有一个RSA私钥存储为字符串,我需要将其转换为用于API的PrivateKey对象。我可以找到从私钥文件转换为字符串的人的例子,但没有其他方式。将RSA PKCS1私钥字符串转换为Java PrivateKey对象
我设法将其转换为一个专用密钥对象,但它是在PKCS8,当我需要它是PKCS1,我知道Java没有PKCS1EncodedKeySpec
byte[] key64 = Base64.decodeBase64(privateKeyString.getBytes());
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
KeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
如果您的意思是_must_接受PKCS1 RSAPrivateKey(又名OpenSSL的'传统'格式)base64(〜PEM或DER),并且无法修复它:如果清除请参阅https://stackoverflow.com/questions/3243018/如何加载rsa私人密钥从文件或我的黑客在https://stackoverflow.com/questions/23709898/java-convert-dkim-private-key-from-rsa-to-der-for -javamail加密PEM(不太可能?)请参阅https://stackoverflow.com/questions/44681737/get-a-privatekey-from-a-rsa-pem-file或https://stackoverflow.com/questions/35276820/decrypting-an-openssl-pem-encoded-rsa-private-key-with java –
你的第二段没有任何意义。 –