1、生成密钥:

使用终端openssl命令生成密钥

1).生成私钥,密钥长度为2048bit,base64编码。

openssl genrsa -out rsa_private_key.pem 2048      (128/512/1024/2048)

关于密钥长度,这里要进行一下特别说明。每次加密的数据不能超出密钥的长度,2048bit长度的密钥,只能单次只能加密(2048 / 8 - 11) = 245byte长度的数据。(那11byte是RSA预留的长度)。若待加密的数据长度超过了245byte,就需要对数据进行分段加密。

2).根据之前生成的私钥生成公钥:

openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout

3).将生成的私钥为转换PKCS8格式,这种格式可以直接在iOS项目中使用:

openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

我司的情况是由公司后台生成私钥和公钥,提供.pem格式的公钥给移动端,因此我直接使用的是pkcs8格式的公钥。

 

最后使用生成2和3的文件 rsa_public_key.pem和pkcs8_rsa_private_key.pem


作者:Doliant_H
链接:https://www.jianshu.com/p/4f76b07c7390
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。