iOS 中使用RSA加密

RSA介绍
非对称加密 比较适合客户端进行密码的加密后提交给服务器 客户端使用公钥加密 客户端使用私钥解密

由于iOS原生没有对rsa的支持,但有对openssl的支持

在mac os x上使用命令生成公钥 私钥

`openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650`

中间会提示输入一些信息,随意写吧

在得到公钥私钥后还要进行一步转换 由于这样生成的私钥并非标准的 需要转换成pkcs8 否则服务器会无法使用私钥

`openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private.pem -nocrypt`

####客户端加密的过程

1.先用公钥加密
2.base64 编码
3.发送服务器

ps:我们服务器端使用的java 测试可用

证书的生成参考 cocoachina 这篇文章

客户端加密 使用了 github 开源的一个xrsa