Java转ColdFusion:带密码的加密PEM密钥解密问题
从Java转ColdFusion:解密带密码的PEM私钥问题
我需要把Java中使用OpenSSL解密带密码加密的PEM私钥的逻辑转换为ColdFusion代码,目前已经完成部分转换,但卡在了Java代码中的decryptPrivateKeyInfo调用这一步,当前ColdFusion代码的密钥获取部分无法正常工作。
Java原代码
String privateKeyFile = "test_key.pem"; FileInputStream privateKey = null; PEMParser pemRd = new PEMParser(new InputStreamReader(privateKey)); Object objectInPemFile = pemRd.readObject(); PKCS8EncryptedPrivateKeyInfo keyInfo = (PKCS8EncryptedPrivateKeyInfo) objectInPemFile; String pwd = "secret"; InputDecryptorProvider pkcs8Prov = new JceOpenSSLPKCS8DecryptorProviderBuilder().build(pwd.toCharArray()); PrivateKeyInfo privateKeyInfo = keyInfo.decryptPrivateKeyInfo(pkcs8Prov);
无法转换的关键代码
PrivateKeyInfo privateKeyInfo = keyInfo.decryptPrivateKeyInfo(pkcs8Prov);
当前ColdFusion代码(密钥获取部分失效)
privateKeyFile = createObject("java", "java.io.FileReader").init(ExpandPath("test_key.pem") ); privateKey = createObject("java", "org.bouncycastle.openssl.PEMParser").init( privateKeyFile ).readPemObject().getContent(); privateKey= toBase64(privateKey); privateKeyFile.close(); privateKey = privateKey.replaceAll("^-+BEGIN RSA PRIVATE KEY-+", ""); privateKey = privateKey.replaceAll("-+END RSA PRIVATE KEY-+", ""); privateKey = privateKey.replaceAll(chr(10), "").trim(); decryptorProvider = createObject("java", "org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder").build('secret'); decryptedKeyPair = createObject("java","org.bouncycastle.openssl.PEMEncryptedKeyPair");
内容的提问来源于stack exchange,提问作者Vlado
相关产品推荐
相关产品推荐

