iOS加解密基础

作者: 勇往直前888 | 来源:发表于2017-06-12 12:11 被阅读75次

    一般在iOS开发中,用到加解密的场景主要是网络传输,比如会在httpheader里面加一个sign字段,填的就是MD5只。另外就是登陆注册模块,用户名和密码的存储和传输,总不能用明文吧?(现实中很多就是明文直接传的)
    在实际开发过程中,加解密算法,具体怎么做,一般都是后台定的,iOS客户端只是做配合。
    总之就是,加解密在iOS客户端开发过程中占得比例很小,并且往往只是配合的角色。
    虽然不重要,但是不可缺少,一些基础知识还是要了解的。

    非对称加密

    • 常用算法是RSADSA、ECC什么的据说也是,没用过

    • 苹果市场的证书管理,这个繁琐过程基本都遇到过,这个就是非常典型的场景

    iOS 基础:证书介绍

    漫谈iOS程序的证书和签名机制

    • AFNetworking使用自定义私有证书的方案。不过这样用的人很少,基本上是不用证书验证的。本人接触过的四五个App,只有一个是这么做的。

    公钥与私钥这篇文章写得非常好,理解非对称加密的原理讲得很清晰

    (1)一般会把“私有证书”,(.cer文件),直接打包在iOS客户端,这里包含公钥;私钥保存在服务端;
    (2)用“私有证书”中的公钥解密,拿到信息的摘要;
    (3)对信息进行本地摘要计算
    (4)比较两个摘要是否一直,对收到的信息进行验证。

    对称加密

    • 常用算法是AES、DES、3DESDES在实际的项目中遇到过

    • 经历过的使用场景是热更新,将JSPatch接入工程;

    • 热更新文件是代码,所以需要加密,加解密用的key直接写在客户端。

    • 由于要存文件,所以要引入Base64编码,(不是加密,也不是摘要)。

    摘要

    • 常用算法是MD5、SHA、HMAC;其中MD5用的最多

    • 几乎每个项目都用到了MD5,有些还有直接写在客户端的key,应该是所谓的“加盐”。固定的只是“盐”的一部分,一般还会配上时间戳,而这个时间戳会在httpheader的另外一个字段传过去。

    浅谈MD5加密算法中的加盐值(SALT)

    参考文章

    iOS - 加解密(对称,非对称)(AES DES base64这里都有),数字签名,cookie

    相关文章

      网友评论

        本文标题:iOS加解密基础

        本文链接:https://www.haomeiwen.com/subject/pvclqxtx.html