如何把DER编码的数据转成PEM的数据?C++使用OPENSSL的RSA算法加密--PHP来解密
各位大哥。。。小弟现在碰到一个棘手的问题,描述如下:
我用C++写了一个COM组件,这个组件用到了OPENSSL库中RSA算对字符串比如“AAAA”进行公钥加密, 然后打算用PHP来私钥解密
生成密钥
m_pRsa = RSA_generate_key(m_rsa_bits,RSA_F4,NULL,NULL);//公钥指数默认指定为RSA_F4(。。。)
//得到公钥 保存
len = i2d_RSAPublicKey(m_pRsa, &Pt);
//得到私钥 保存
len = i2d_RSAPrivateKey(m_pRsa, &Pt);
而这两个函数得到的公钥和私钥是DER编码格式的。。。
在PHP中,我要使用公钥和私钥,必须是PEM格式的
http://www.php.net/manual/en/function.openssl-private-decrypt.php
这样。。。除非我当初保存密钥的时候就用PEM格式来保存。。。或者我能将DER编码格式转换成PEM格式。。。
这两点目前我都没辙。。。。望有相关经验的大哥能指点小弟一二。。。
[解决办法]
帮顶了...问问看雪的...
[解决办法]
奇怪,我生成的证书和密钥都是pem格式的
另外,openssl可以转换啊
[解决办法]
openssl里有pem开头的函数就可以得到pem编码的
比如
存到文件的:PEM_write_RSAPublicKey
写到bio的:PEM_write_bio_RSAPrivateKey
找找类似的你需要的吧
[解决办法]
回复下!