iOS RSA加签 验签 与Java同步 pkcs8 pkcs1

先简单介绍一下RSA。
1.加密、解密:使用公钥对数据进行加密,通过私钥对加密后的数据解密。
2.加签、解签:使用私钥对数据进行签名,通过加签名的数据和公钥进行数据验证,以确认合法性。

网上RSA相关的代码、文章有很多,这篇文章主要是提醒iOS开发者,注意pkcs8是用于java的,如果后端只给了你私钥,你要先判断一下这个私钥匙是不是iOS支持的pkcs1。

后端给了我一个.pem 文件,我按照网上的方法,通过终端使用openssl命令生成.csr文件,在这一步报错了,原因是这个.pem 文件密钥格式是pkcs8。可以通过用文本编辑器打开这个.pem格式的文件,判断一下密钥的长度。在线计算字符串长度<< 点这里(注意删除空格)。如果是按1024取模(通常都是1024),pkcs1格式的私钥长度应该是824(包含回车)。如果是pkcs8的格式的密钥长度为861。如果你的密钥长度不是824,就说明它不是iOS支持的按1024取模的pkcs1格式,你需要转换格式。

终端命令如下。

openssl pkcs8 -in pkcs8_private_key.pem -nocrypt -out pkcs1_private_key.pem

转换后你可以检查一下,这个pkcs1文件的密钥长度是不是824。

接下来就可以通过openssl生成 .csr -> .ctr -> .p12 ,这个步骤后边会有,从别人那边复制过来的。加签的代码我就不贴了,git上一大把,这篇文章主要是提醒iOS开发者,注意pkcs8与pkcs1的转换。

转换流程我走了一遍,可以看这里 >> pkcs8与pkcs1格式互转

openssl RSA 常用命令

一、使用openssl生成所需秘钥文件
  生成环境是在mac系统下,使用openssl进行生成,首先打开终端,按下面这些步骤依次来做:

  1. 生成模长为1024bit的私钥文件private_key.pem

openssl genrsa -out private_key.pem 1024
  1. 生成证书请求文件rsaCertReq.csr

openssl req -new -key private_key.pem -out rsaCerReq.csr

注意:这一步会提示输入国家、省份、mail等信息,可以根据实际情况填写,或者全部不用填写,直接全部敲回车.

  1. 生成证书rsaCert.crt,并设置有效时间为10年

openssl x509 -req -days 3650 -in rsaCerReq.csr -signkey private_key.pem -out rsaCert.crt
  1. 生成供iOS使用的公钥文件public_key.der

openssl x509 -outform der -in rsaCert.crt -out public_key.der
  1. 生成供iOS使用的私钥文件private_key.p12

openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值