最近一直比较忙没有什么时间继续做《大众点评》的仿照案例,后面抽时间出来会继续研究的😢
最近有个项目需要用到rsa算法对数据进行签名和验签,以便于跟后台服务端相互确认数据的安全性保证数据在传输过程中没有被篡改。
网上找了很多的签名和验签的资料,不能不说资料太少。搜索出来的资料都是一个人不知道从哪里搞来的,方法参数说的不清不楚。
(这两个方法根本没法用)
由于我不想在这个上面花费过多的心思,所以最终通过查阅资料找到支付宝的sdk里面对openssl做了封装,同时我确认过代码之后发现他们的sdk封装了签名和验签的功能正好符合我的开发醒目需求。果断引入了部分文件。首次拖入相关文件的话会报编译错误,那是因为openssl的文件找不到。找到下图所在的设置将openssl的文件夹拖入空白路径之中,重新编译即可。
众多周知:RSA算法利用一对非对称密钥(公钥和私钥来主管四个功能)
签名、验证签名、加密、解密
支付宝SDK封装的签名功能:
支付宝SDK封装的验证签名功能:
(构造代理对象)
BOOL status = [signer verifyString:str withSign:chkValue];//str待验证签名的字符串 chkValue:服务端返回的签名值
在调用支付宝自己封装的验证签名的方法的时候,有些特殊签名串可能在做Base64编码转换的时候会出错,所以我统一利用系统的Base64编码处理字符串,经过测试也是可以使用的。
github传送门:https://github.com/coderCX/XXX-RSA-