RSA私钥不可用
程序员文章站
2022-03-02 15:30:43
...
最近在跟一个平台对接接口,用到RSA加密,对方用的java,我用的PHP,使用对方给的公私钥,调用PHP签名函数openssl_sign一直不成功,使用openssl_get_privatekey函数验证私钥可用否也一直返回false,私钥已经转为pem格式,同一套程序之前使用别的公私钥都是正常的,很郁闷。网上搜索了一番,有一种说法用了正常了,记录在此:
java默认的KeyPairGenerator生成的rsa 公私钥不能直接被openssl来使用
java生成的私钥是pkcs8 格式 公钥是x.509格式
openssl生成和使用的是pkcs1格式,pem公私钥文件,所以需要转换
所以在此将私钥需从pkcs8转为pkcs1。
本地安装了openssl,进入openssl-》bin目录
bin>openssl.exe
OpenSSL> rsa -in pri.pem -out pkcs1.pem
writing RSA key
用生成的pkcs1.pem试着签名,成功生成了签名。