我正在尝试将RSA pem键(包含在String中)转换为byte [],就像给定.pem文件FileInputStream时此方法一样:
我试过这个:
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流式网址时似乎不起作用。
知道我做错了吗?
答案 0 :(得分:3)
只需将字符串包装在ByteArrayInputStream
中即可使用您链接的方法:
InputStream pemStream = new ByteArrayInputStream(pemKey.getBytes());
byte[] derKey = EncryptionUtil.convertRsaPemToDer(pemStream);