Mac生成RSA公钥和私钥

app嵌入支付宝SDK需要RSA秘钥,按照支付宝的教程https://help.alipay.com/support/help_detail.htm?help_id=397433&sh=Y&tab=null&info_type=9制作RSA秘钥现在记录一下这个过程。

mac上自带了openssl工具,所以我们直接打开terminal终端输入openssl就可以开始生成了。

1、新建一个文件夹作为存放RSA秘钥的路径

2、在终端cd到这个目录下,输入openssl就开启了就可以看到openssl命令了(如下图)

3、按照支付宝的教程输入第一行命令:“genrsa -out rsa_private_key.pem 1024”生成私钥(如下图)

4、输入第二行命令:“pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt”回车,可以看到PKCS8格式的私钥(如下图)

5、生成RSA公钥输入命令“rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem”并回车就可以看到生成结果(如下图)

6、打开存储文件夹可以看到对应的公钥和私钥

用文本编辑器打开私钥将内容粘贴到支付宝sdk的私钥中就可以了。

 

原因: 

真机调试iOS支付宝功能GDB出现 rsa_private read error : private key is NULL提示

调试iOS 支付宝SDK的时候,运行demo,把
Partner(合作商户 ID)
Seller(账户 ID)
RSA public key(支付宝公钥)
RSA private key(商户私钥)

都放到plist文件了,运行的时候,报错 rsa_private read error : private key isNULL

我确定的是RSA private key肯定是有的,调试了下

    bio_private= BIO_new(BIO_s_file());
    BIO_read_filename(bio_private,private_key_file_path);
    rsa_private= PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL,"");    
    if(rsa_private != nil) {
这里,rsa_private 返回空, private_key_file_path 这些值都是有的

解决方法: 

将私钥转成PKCS8替换一下原私钥即可

 

1、生成私钥pem,  执行命令openssl genrsa -out rsa_private_key.pem 1024
2、生成公钥,执行命令openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3、将RSA私钥转换成PKCS8格式,命令执行openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt PHP服务端语言读取私钥不需要PKCS8转换。
 
 
转载:https://www.cnblogs.com/qyqblogs/articles/6054677.html

转载于:https://www.cnblogs.com/CatYang/p/9018389.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值