请介绍一下你知道的加密算法
参考回答:
一般分类如下
1
对称加密
2
非对称加密
3
哈希摘要
4
电子签名
5
密码存储
其中
●
对称加密常见的有:DES、AES 等,国家标准有 SM4
●
非对称加密常见的有:RSA,ECDSA 等,国家标准有 SM2
●
哈希摘要有:MD5、SHA-2、SHA-3 等,国家标准有 SM3
●
电子签名有:通常会结合 RSA、ECDSA 和哈希摘要完成签名,或者是 HMAC
●
密码存储:直接使用哈希摘要作为密码存储、加盐存储、BCrypt
1.2【追问】解释对称加密、非对称加密、哈希摘要
●
对称加密
○
加密和解密的密钥使用同一个
○
因为密钥只有一个,所以密钥需要妥善保管
○
加解密速度快
●
非对称加密
○
密钥分成公钥、私钥,其中公钥用来加密、私钥用来解密
○
只需将私钥妥善保管,公钥可以对外公开
○
如果是双向通信保证传输数据安全,需要双方各产生一对密钥
■
A 把 A公钥 给 B,B 把 B公钥 给 A,他们各自持有自己的私钥和对方的公钥
■
A 要发消息给 B,用 B公钥 加密数据后传输,B 收到后用 B私钥 解密数据
■
类似的 B 要发消息给 A,用 A公钥 加密数据后传输,A 收到后用 A私钥 解密数据
○
相对对称加密、加解密速度慢
●
哈希摘要,摘要就是将原始数据的特征提取出来,它能够代表原始数据,可以用作数据的完整性校验
○
举个例子,张三对应着完整数据
○
描述张三时,会用它的特征来描述:他名叫张三、男性、30多岁、秃顶、从事 java 开发、年薪百万,这些特征就对应着哈希摘要,以后拿到这段描述,就知道是在说张三这个人
○
为什么说摘要能区分不同数据呢,看这段描述:还是名叫张三、男性、30多岁、秃顶、从事 java 开发、月薪八千,有一个特征不符吧,这时可以断定,此张三非彼张三