ios RSA加密解密一些相关问题

前言:

最近在做一个类似支付宝的理财项目,涉及到了RSA加解密方面的知识,在这里也遇到了不少的问题。写出来与大家分享心得。

1、什么是RSA加密解密(ios RSA加密解密过程)

      这些网上都说的很清楚,大家可以从网上查找一下。

      理论上是可以用公钥加密,私钥解密,或者是私钥加密,公钥解密。RSA加密有两种方案:

      1):前端向后台请求数据:前台把自己的信息用私钥加密,再把加密后的信息用私钥签名,最后把自己的公钥传给后台

               后台受到前端的数据:后台将前端的私钥取出并用前端的公钥验证签名,验证通过,在用公钥解密

      2):后台把自己的公钥给前端(事先约定好的),前端用后台的公钥加密,并且用自己的私钥签名。将数据发送给后台。

               后台收到前端的数据后然后用自己的私钥解密,用前端的公钥验证签名。(这个貌似支付宝是这么做的)

                           这样整个过程就完成了

2、ios的签名方法

      1)可以用系统提供的API

           SecKeyEncrypt:使用公钥对数据加密(公钥

        SecKeyDecrypt:使用私钥对数据加密(私钥

        SecKeyRawVerify:使用公钥对数据签名和验证,验证数据的合法性

        SecKeyRawSign:使用私钥对数据形成摘要,并对摘要进行签名

     (iOS的 API 只提供这些类方法,因此不可以用公钥对数据解密,私钥对数据加密,,Android是支持的)。

       2)可以用第三方的openssl库,(这个就不多说了,这个是可以实现,公私钥交换加密解密的,这个方案整整折腾了我九天时间)。

           其中要感谢  http://www.th7.cn/Program/IOS/201501/352560.shtml  这篇博文很有价值,还有第三方的开源代码OpenSSLRSAWrapper

你可能感兴趣的:(rsa,ios,加密,rsa,解密,openssl)