【安全-算法】常见安全算法

MD5(MD5 Message-Digest Algorithm)

消息摘要算法

特点

  • 不可逆
  • 输入不室长,输出定长的128-bits(用32个16进制字符表示)

算法

img

使用场合

用于各种程序语言中,以确保资料传递无误(摘要)。

参考资料

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”,以及”+”和”/“符号]
目的是:
img

可以编码,也可以解码。
是一种编码方式,切记不要误用于加密、解密的场合(有DES、IDEA等对称加密算法)。

使用场合

常用于在处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的电子邮件及XML的一些复杂数据。
如:Base64编码图片、MIME内容、URL(用于传递参数)。
img
img

参考资料

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是由三个人名的首字母缩写而来。

优缺点

优点是,相对于对称加密,对称密钥需要协商密钥,非对称加密不需要协商,可以将公钥完全地公开。
缺点是,运算速度慢。

与对称加密结合使用

在实际应用中,将对称和非对称结合使用。

  1. A和B先交换公钥;
  2. A生成一个随机AES口令,通过B的公钥加密,并发送给B;
  3. B接收信息后,通过自己的私钥解密得到AES口令;
  4. 双方用这个AES口令进行加密通信。

应用场合

  • https 加密链接
  • socket程序,结合运用 rsa + aes

参考资料