前言:
最近在做一个类似支付宝的理财项目,涉及到了RSA加解密方面的知识,在这里也遇到了不少的问题。写出来与大家分享心得。
1、什么是RSA加密解密(ios RSA加密解密过程)
这些网上都说的很清楚,大家可以从网上查找一下。
理论上是可以用公钥加密,私钥解密,或者是私钥加密,公钥解密。
我的理解是:A向B请求数据:A把自己的信息用私钥签名,并且把自己的公钥传送给B,
B受到A的数据:B将A的公钥取出,并且用A的公钥确认签名,
B向A发送数据:B将自己的数据用A公钥加密,再将自己的公钥暴露给A,并且在用自己的私钥将部分数据签名,(向A确认这是B发送的数据)
A受到B的数据:A用自己的私钥对B发送的数据进行解密,并且用B的公钥进行对B的签名进行验证,以确保这是B发送的数据,(A保存B的公钥)
A向B发送数据:A将自己的数据用B的公钥进行加密,然后发送给B。
整个过程就建立了。
2、ios的签名方法
1)可以用系统提供的API
SecKeyEncrypt:使用公钥对数据加密(公钥)
SecKeyDecrypt:使用私钥对数据加密(私钥)
SecKeyRawVerify:使用公钥对数据签名和验证,验证数据的合法性
SecKeyRawSign:使用私钥对数据形成摘要,并对摘要进行签名
(经多方面确认iOS的 API 只提供这些类方法,因此不可以用公钥对数据解密,私钥对数据加密,,Android是支持的)。
2)可以用第三方的openssl库,(这个就不多说了,这个是可以实现,公私钥交换加密解密的)。
时间: 2024-11-26 08:46:20