摘要算法/哈希算法/杂凑算法/散列算法
将各种不定长的【数据/文件】经过某种算法处理之后,总是能生成一段定长的数据。这段定长的数据称之为【哈希值/散列值/消息摘要/指纹】。
这种算法如果可以满足以下特征,则可以称为摘要算法/哈希算法/杂凑算法。
- 可以轻松地将各种不定长的【数据/文件】生成【哈希值/散列值/消息摘要/指纹】。
- 不能通过【哈希值/散列值/消息摘要/指纹】来反推出原始【数据/文件】
- 不能找出具有相同【哈希值/散列值/消息摘要/指纹】的另一个【数据/文件】
目前常用的摘要算法有 MD5、SHA-1、SHA-256、SHA-512 等;国密有SM3
非对称加密
生成有两个密钥,一个是key-A,另一个是key-B
一段明文通过某种加密算法用 key-A 加密之后的密文只能用 key-B 解密,而不能还是用 key-A 解密。
反过来,明文用 key-B 加密之后的密文只能用 key-A 解密,而不能还是用 key-B 解密。
满足这种特征的加密算法称为非对称加密算法。
目前常用的非对称加密算法有 RSA、DSA(Digital Signature Algorithm)、ECC 、国标的有SM2
数字签名
数字签名其实就是把【数据/文件】的【散列值】经过非对称加密算法加密得到的一个【加密的散列值】
电子合同
使用数字签名技术,对合同文件进行加密后的文件