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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,795评论 8 265
  • 之前的项目中接触过一些加密的方法,也没有太仔细的进行记录和研究。最近在写SDK时,加密模块的占比相当之大;借此时机...
    过半_e764阅读 645评论 0 0
  • 生活不可能像你想象得那么好,但也不会像你想象得那么糟。我觉得人的脆弱和坚强都超乎自己的想象。有时,我可能脆弱得一句...
    是Ava啊阅读 678评论 1 1
  • 最近和几个朋友聊天,说起了工作的困惑与挣扎,小结一下。 关于工作和幸福感 为什么中国人比起欧美人,甚至亚洲其它国家...
    lulu_w阅读 147评论 0 0