iOS 加密基础知识
2019-10-22 本文已影响0人
MrSYLong
1、加密算法种类
按照加密的方式可以将加密算法大体分成三种:
对称加密算法(加密和解密算法用同一把钥匙)
非对称加密算法(加密用一把钥匙,解密用一把钥匙,如:RSA加密的公钥和私钥)
经典哈希算法(哈希算法是一种散列算法,是不可逆的,只能通过穷举法超大量的计算才可能算出,一般几率很小,同一段的明文两次计算出来的结果是不一样的)
2、算法举例
对称加密算法:DES算法,3DES算法,AES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法,。
非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC。
经典的哈希算法:MD2、MD4、MD5 和 SHA-1(目的是将任意长输入通过算法变为固定长输出,且保证输入变化一点输出都不同,且不能反向解密)、SHA256
3、
在开发中常用的算法:Base64、MD5、sha、AES、RSA。
补充:RSA加密算法中比较重要的加密算法
非对称加密是指加密公钥和解密密钥是不同的,而且加密公钥和解密密钥是成对出现。非对称加密其中一个是对外公开的,所有人都可以获得,人们称之为公钥;而与之相对应的称为私钥,只有这对密钥的生成者才能拥有。
公/私钥通常是1024位或者2048位,越长安全系数越高,但是解密越困难。尽管拿到了公钥,如果没有私钥,要想解密那几乎是不可能的,至少现在在世界上还没有人公开出来说成功解密的。
4、应用场景
先移动端给服务器传递通过RSA公钥加密后的数据,参数包括DES的密钥(密钥是随机生成的八位字符串) 和 相关参数信息,服务器通过私钥解密信息数据,里面包括DES密钥和 相关参数信息,服务器再通过此DES密钥加密返回数据给移动端,移动端通过此DES密钥进行解密获取数据。
优点:因为RSA不容易解密,即使被拦截解密了,获取了DES的密钥,因为DES的密钥是随机生成的,也只能解密这一次的数据信息,不会对其他数据信息产生影响。(注:DES的密钥每一次都要重新随机生成,也就是一个密钥只完成这一次的数据传递)