【安全-算法】常见安全算法
MD5(MD5 Message-Digest Algorithm)
消息摘要算法
特点
- 不可逆
- 输入不室长,输出定长的128-bits(用32个16进制字符表示)
算法
使用场合
用于各种程序语言中,以确保资料传递无误(摘要)。
参考资料
SHA(Secure Hash Algorithm)
安全散列算法
SHA-3:2015年正式发布,由于对MD5出现成功的破解,以及对SHA-0和SHA-1出现理论上破解的方法,NIST感觉需要一个与之前算法不同的,可替换的加密散列算法,也就是现在的SHA-3。
特点
- 输出定长(具体模式长度不一样,SHA3-512、SHA3-256)
- SHA2和SHA3目前还未被破解。
参考资料
Base64(基底64,一种编码方式,非算法)
概念
是一种基于64个可打印字符来表示二进制数据的表示方法。
字符有:[0-9、A-Z、a-z、+/]
还有类似其它的编码方式,如Base32。对比Base32,Base64有更多的字符用于编码,其编码后的长度要更短。还有Base58,用于比特币中,不使用易混淆的字符[不使用数字”0”,字母大写”O”,字母大写”I”,和字母小写”l”,以及”+”和”/“符号]
目的是:
可以编码,也可以解码。
是一种编码方式,切记不要误用于加密、解密的场合(有DES、IDEA等对称加密算法)。
使用场合
常用于在处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的电子邮件及XML的一些复杂数据。
如:Base64编码图片、MIME内容、URL(用于传递参数)。
参考资料
DES(Data Encryptioin Standard)
数据加密标准,是一种对称加密算法。是由IBM公司研制的对称密码体制加密算法,密钥长64位,实事上是56位参与DES运算(其它的是校验位,8、16、24、32、60、48、56、64)
特点
分组比较短、密钥太短、运算速度慢
有极高的安全性(并非不可破解。用穷举的时间特别长。特殊的硬件并行计算几个小时)
加强版本:3DES_百度百科,即Triple Data Encryption Algorithm。相当于对每个数据块应用三次DES加密算法。
参考资料
IDEA(International Data Encryption Algorithm)
国际数据加密算法,是从DES算法的基础上发展出来的。密钥长度为128位。
特点
- 对比DES而言,更安全
- 是一种数据块加密算法
- 在美国之外发展(避开了美国法律上对加密技术的限制)
应用
- PGP使用IDEA作为其分组加密算法;
- SSL也将IDEA包含在SSLRef中;
参考资料
AES(Advanced Encryption Standard)
高级加密标准,用来替代原先的DES,目前被广泛应用。
密钥长度可以是128位、192位或256位。
应用场合
SSL、IpSec、ATM、路由器、网络保密系统、卫星通信、移动通信。
参考链接
RSA非对称加密算法
RSA是由三个人名的首字母缩写而来。
优缺点
优点是,相对于对称加密,对称密钥需要协商密钥,非对称加密不需要协商,可以将公钥完全地公开。
缺点是,运算速度慢。
与对称加密结合使用
在实际应用中,将对称和非对称结合使用。
- A和B先交换公钥;
- A生成一个随机AES口令,通过B的公钥加密,并发送给B;
- B接收信息后,通过自己的私钥解密得到AES口令;
- 双方用这个AES口令进行加密通信。
应用场合
- https 加密链接
- socket程序,结合运用 rsa + aes