一、引言
最近很长一段时间都在做项目对接,几乎对接的每家公司都有自己一套参数加解密方式,写下这篇文章记录不同的加解密,以备后用。原理上不做阐述,这篇文章总览介绍一下各种常见算法,以及它们的优缺点、应用场景。
二、算法总览
按照图例,总体来说加密分为Hash摘要、对称加密、以及非对称加密。如果从严格意义上来说Hash摘要不能算是一种加密。
有人可能会有疑问base64
是不是加密算法?当然,它不是加密算法,它只是一种数据编码方式,虽然是可逆的,但是它的编码方式是公开的,根本不算加密。
三、Hash摘要
实际上不是加密,就是Hash散列,因为是摘要信息,所以转换过程不可逆。 常见的Hash摘要算法有MD5
、SHA(SHA-1、SHA-2)
等。
四、对称加密
通过相同的密钥可以进行加密和解密,效率高。密文和原文可通过密钥相互转换。常见的对称加密算法有DES
、AES
等。还有一些使用并不广泛的标准,包括Blowfish
、IDEA
、RC5
、RC6
等。
4.1 DES
DES
是第一代应用比较广泛的对称加密算法标准,在2000年初又此演化了一个强度更高的3DES
加密标准。
4.2 AES
AES
高级加密标准是下一代的加密算法标准,速度快,安全级别高,正日益成为加密各种形式的电子数据的实际标准。推荐对称加密使用此标准。
五、非对称加密
加密和解密时分别使用密钥对的公钥、私钥,一般公钥(公钥较短)加密,私钥解密,反之也可,相同的密钥只能完成加解密的一个过程,不能既加密又解密。加密强度优于Hash摘要和对称加密。
六、总结
本篇文章在整理过程中阅读了一些大牛的博客,由衷感谢,特别对程序员小灰、米扑博客再次表示感谢。文章简单介绍各种加密算法,主要为系统记录,防止遗忘。另外会写上一篇文章代码如何去实现。