欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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试着签名,成功生成了签名。