1、常见的哈希算法有 MD、SHA、MAC 等。
2、常见的对称加密算法有 DES、3DES、AES 等。
3、常见的非对称加密算法有 RSA、DSA、ECC 等。
一、对称加密和非对称加密的主要区别在于密钥的数量、分发方式、加密和解密过程的安全性以及应用场景。
1、密钥的数量和分发方式:
对称加密使用相同的密钥进行加密和解密,因此只有一个密钥。在通信双方之间需要安全地分发这个密钥,以确保只有合法的用户能够访问密钥。
非对称加密使用一对密钥,分别是公钥和私钥。公钥是公开的,可以自由分发,而私钥则需要严格保密。公钥用于加密数据,私钥用于解密数据。
2、加密和解密过程:
对称加密的加密和解密使用相同的密钥,算法相对简单,执行速度快。
非对称加密的加密和解密使用不同的密钥,非对称算法相对复杂,执行速度较慢。
3、安全性:
对称加密的安全性主要挑战在于密钥的安全性,因为需要在通信双方之间共享密钥。一旦密钥被泄露,通讯中的信息就可能会被别人获取。
非对称加密不需要密钥共享,因此更容易管理。公钥是公开的,可以用于加密数据,而私钥用于解密数据,这种机制使得非对称加密更加安全。
4、应用场景:
对称加密广泛应用于数据传输和存储中,常见的对称加密算法包括DES、AES、RC4等。例如,在HTTPS通信中,使用对称加密算法加密数据传输。
非对称加密广泛应用于数字签名和身份认证中,常见的非对称加密算法包括RSA、DSA等。例如,在SSL/TLS通信中,使用非对称加密算法进行身份认证和密钥交换。此外,非对称加密还可以用于数字签名技术,以验证数据的来源和完整性。
总结:对称加密和非对称加密各有其优势和适用场景。在实际应用中,可以根据具体需求选择合适的加密技术,或者结合使用这两种加密算法以达到最佳的安全性和速度。
二、 MD5 :
1、概念:
首先介绍一下hash函数:一般翻译做“散列”,也直译为“哈希”,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
MD5是Message-Digest Algorithm(消息摘要算法)的简称,是一种被广泛使用的hash函数,可以产生出一个128位的散列值,主要用于确保信息传输完整一致。
2、应用场景:
a、一致性验证
MD5的典型应用是对一段文本信息产生信息摘要,以防止被篡改。常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。
b、数字证书
如果有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
c、安全访问认证
【保存在数据库中的密码需要加盐之后使用哈希算法(比如 BCrypt)进行加密】
MD算法常见的是MD5,一般用于校验登录用户和密码,数据库一般保存的是MD5加密后的密码。
3、风险性:
MD5已经较老,散列长度通常为128位,随着计算机运算能力提高,找到“碰撞”是可能的。因此,在安全要求高的场合不使用MD5。
MD5 存在被破解的风险,为了增加破解难度,通常可以选择加盐。【盐(Salt)在密码学中,是指通过在密码任意固定位置插入特定的字符串,让哈希后的结果和使用原始密码的哈希结果不相符,这种过程称之为“加盐”】
三、AES算法(对称算法):
AES(Advanced Encryption Standard)算法是一种更先进的对称密钥加密算法,它使用 128 位、192 位或 256 位的密钥对数据进行加密或解密,密钥越长,安全性越高。【AES 的速度比 3DES 快,而且更安全】
AES 也是一种分组(或者叫块)密码,分组长度只能是 128 位,也就是说,每个分组为 16 个字节。AES 加密算法有多种工作模式(mode of operation),如:ECB、CBC、OFB、CFB、CTR、XTS、OCB、GCM(目前使用最广泛的模式)。不同的模式参数和加密流程不同,但是核心仍然是 AES 算法。