转换RSA PEM密钥字符串为DER的byte []

问题描述:

我想一个RSA PEM密钥(包含在一个字符串)转换为一个byte [],这样的方法给出的.pem文件的FileInputStream什么时候:转换RSA PEM密钥字符串为DER的byte []

http://jets3t.s3.amazonaws.com/api/org/jets3t/service/security/EncryptionUtil.html#convertRsaPemToDer(java.io.InputStream)

我已经试过这样:

String pemKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" 
     + "{base64 encoded key part omitted}\r\n" 
     + "{base64 encoded key part omitted}\r\n" 
     + "{base64 encoded key part omitted}\r\n" 
     + "-----END RSA PRIVATE KEY-----"; 
String base64 = pemKey 
     .replaceAll("\\s", "") 
     .replace("-----BEGINRSAPRIVATEKEY-----", "") 
     .replace("-----ENDRSAPRIVATEKEY-----", ""); 

return Base64.decode(base64.getBytes()); 

我希望得到的结果是相当于什么会被org.jets3t.service.security.EncryptionUtil.convertRsaPemToDer()返回,但它似乎并没有被生成CloudFront的流网址时工作。

任何想法我做错了什么?

只是包装字符串中ByteArrayInputStream,你可以使用你链接的方法:

InputStream pemStream = new ByteArrayInputStream(pemKey.getBytes()); 
byte[] derKey = EncryptionUtil.convertRsaPemToDer(pemStream); 
+0

谢谢!我的方法产生了相同的结果;看起来问题在于别处...... –