iOS TLV解析、ASCII排序、RSA SHA256加签

最近新集成了微信、支付宝、银联的二维码主扫和被扫收款,总结一下用到的知识点:

1.TLV 57域解析  :

源码参考 :链接 密码:uox7

原文:https://blog.csdn.net/linux_zkf/article/details/17078325


2.数组ASCII排序:

为了安全起见,传给后台的参数需要加签验签,同时约定了加签时传输参数的顺序,采用ASCII排序:

    NSArray* keyArray = [params allKeys];//遍历出来所有的key值

    NSStringCompareOptions comparisonOptions=NSCaseInsensitiveSearch|NSNumericSearch|

    NSWidthInsensitiveSearch|NSForcedOrderingSearch;

    NSComparatorsort = ^(NSString*obj1,NSString*obj2){

        NSRangerange =NSMakeRange(0,obj1.length);

        return[obj1compare:obj2options:comparisonOptionsrange:range]; };

//resultArray即重新排序好的数组

    NSArray *resultArray = [keyArraysortedArrayUsingComparator:sort];


3.RSA加签:

因为以前做项目用过RSA加密,所以觉得这里应该很简单,事实证明我有点先入为主了,首先加签和加密就完全不是一个概念,其次之前的私钥是明文写在代码里的,这次的需求是后台给定一个pfx格式的文件自行读取私钥进行加签,最后需要注意的是加签的方式,我们项目采用的是SHA256,这里主要参考了https://www.jianshu.com/p/67aeca97f25d,解决了我的大问题,感谢。

源码参考 :链接 密码:enaf

你可能感兴趣的:(iOS TLV解析、ASCII排序、RSA SHA256加签)