常用加密算法总结
常用加密算法总结
加密算法是一种用数学方法对数据进行变换对技术,目的是保护数据对安全,防止被未经授权的人都去或修改。加密算法可分为三大类:
•
哈希算法(摘要算法):包含MD、SHA、MAC、Bcrypt
•
对称加密算法:DES、3DES、AES
•
非对称加密算法:RSA、DSA
哈希算法
哈希函数、散列函数或摘要函数,它的作用是对任意长度的数据生成一个固定长度的唯一标识
哈希值的作用可用来验证数据的完整性和一致性
举两个🌰
•
我们下载一个文件时,比较文件的哈希值和官方提供的哈希值是否一致,判断该文件是否被篡改
•
保存密码到数据库时使用哈希算法进行加密,通过比较用户输入密码到哈希值和数据库保存到哈希值是否一致,来判断密码是否正确
算法特点不可逆
•
不能从哈希值还原出原始数据
•
原始数据的任何改变都会导致哈希值的巨大变化
哈希算法主要有下面几类:
•
MD(Message Digest,消息摘要算法):MD5
•
SHA(Secure Hash Algorithm,安全哈希算法):SHA-1、SHA-256
•
MAC(Message Authentication Code,消息认证码算法):HMAC
◦
一种基于密钥的哈希算法,增加了一个密钥,使得只有知道密钥的人才能验证数据的完整性和来源
•
其他:国密算法(SM3)、密码哈希算法(Bcrypt)
◦
国密算法常见有SM2、SM3、SM4,其中SM2为非对称加密算法,SM3为哈希算法,SM4为对称加密算法
MD
MD算法有多个版本
•
安全性:MD5 > MD4 > MD2
即使是最安全MD算法MD5也存在被破解的风险,攻击者可以通过暴力破解或彩虹表攻击等方式,找到与原始数据相同的哈希值,从而破解数据。
为了增加破解难度,通常选择加盐。
•
盐在密码学中,是指通过在密码任意固定位置插入特定的字符串,让哈希后的结果和使用原始密码的哈希结果不相符,这种过程称为“加盐”