RSA私钥不可用

最近在跟一个平台对接接口,用到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试着签名,成功生成了签名。

同理公钥也许进行转换:

OpenSSL> rsa -pubin -in pub.pem -pubout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值