MAC OS自带了OpenSSL,使用Mac终端指令生成证书

一、使用openssl终端指令生成公钥和私钥证书,最后需要得到公钥证书(public_key.der)和私钥证书(private_key.p12)这两个证书供iOS端加、解密使用。(rsa_public_key.pem)和(pkcs8_private_key.pem)这两个供Android端使用,这些证书是从同一个私钥证书(private_key.pem)中导出的。Android端的加密数据,可以在Android和iOS端都可以解密,iOS端加密的数据,可以在Android端和iOS端解密。

1、创建存放证书的文件夹,并cd到该目录下。
命令行如下:

//  生成RSA密钥对 1024可换成 2048 增加安全性(2048使用时候需要Android端验证使用,有可能会出错)

openssl genrsa -out private_key.pem 1024

// 创建认证需要的文件:rsacertreq.csr

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

// 创建使用X509:rsacert.crt认证, 3650是证书有天数,这里表示是10年

openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt

// 创建公共public_key.der
openssl x509 -outform der -in rsaCert.crt -out public_key.der

// 创建private_key.p12 文件。请记住你的密码
openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt


具体如下图

本地创建证书_指令生成

 

 下面两句指令是生成Android端证书文件的指令:
// 导出公钥pem文件
openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout

//  导出私钥文件
openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt

如下图所示:
本地创建证书_指令生成_02

 

 生成证书后

本地创建证书_android端_03

二、实现rsa加密解密

1,把上面截图中的(iOS)两个证书直接拖到工程中;Android 的可以直接用里面的密钥、公钥字符串

2,添加系统安全框架:Security.framework (Build Phases->Link Binary With Libraries() 点击+号,搜索最后Add)

关于加密的代码待添加。