在我们的app当中,为了数据的安全,有时需要对数据进行加密,iOS中常见的加密算法主要有:base64加密,MD5加密,对称加密,非对称加密。今天我们来探讨一下iOS中常见的加密算法。
网络开发中中的原则:
1:在网络上不允许传输用户的明文隐私数据。
2:在本地不允许保存用户的明文隐私数据。
3:用户的密码是不可逾越的红线。
iOS中加密算法的分类:
iOS中的加密主要分为三大类:对称加密、非对称加密、线性散列算法
1.对称加密:(可逆)
什么是对称加密?
信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了。
对称加密算法主要有DES,3DES,AES(高级密码标准,美国国家安全局使用的,iOS系统使用的加密方式(例如:钥匙串))
2.非对称加密:(可逆)
什么是非对称加密
发送双方A,B事先均生成一对密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。
非对称加密算法主要有:RSA,DSA,ECC
3.线性散列算法:(不可逆)
什么是线形散列算法?
只生成一串不可逆的密文,经常用其效验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。
特点:
算法公开的
对相同的数据加密,得到的结果是一样的。
对不同的数据加密,得到的结果是定长的。md5对不同的数据进行加密,得到的结果都是32个字符。
不能反算的
线性散列算法主要有:
MD5,SHA,HMAC
下面我将在密码学分讲中分别讲解各个算法的原理及其使用方法。