1、哈希算法
- 数学本质:将任意长度输入(明文)映射为固定长度输出(哈希值,也称摘要)。
- 主要特点:
- 不可逆性:无法通过哈希值反推原始输入。
- 雪崩效应:输入的微小变化导致哈希值变化很大。
- 抗碰撞性:不同输入生成相同哈希值,但相对概率较低。
- 常见算法:
- SHA256或SHA-3算法,相对碰撞很低,推荐使用。
- MD5或SHA-1算法,容易产生冲突,不建议使用。
2、加密算法
- 数学本质:明文通过密钥加密为密文,密文通过密钥可逆向解密为明文。
- 主要特点:
- 对称加密:加密和解密使用相同密钥(如AES)。
- 非对称加密:加密和解密使用不同密钥(公钥加密,私钥解密,如RSA、ECC)。
- 可逆性:密钥存在时可恢复原始数据。
- 保密性:确保数据仅对持有密钥的实体可见。
3、签名算法(哈希算法+加密算法的结合)
- 数学本质:
- 基于非对称加密。利用私钥加密哈希值生成签名,公钥验证签名。
- 结合哈希与加密:签名算法本质是哈希+非对称加密的组合。
- 主要特点:
- 身份验证:签名的私钥唯一对应签名者。
- 数据完整性:签名验证确保数据未被篡改。
- 常见算法:
- RSA+SHA256结合或ECDSA+SHA256结合算法等。
简单理解:实际上签名算是哈希算法和加密算法的结合使用。基础还是哈希算法和签名算法。
- RSA+SHA256结合或ECDSA+SHA256结合算法等。
4、对比
5、局限性和协作
(1)、局限性
- 哈希的局限性:
- 无法保证数据来源(只能验证完整性)。
- 需结合加密或签名实现身份验证。
- 加密的局限性:
- 无法验证数据完整性(加密数据可能被篡改后重新加密)。
- 需结合哈希或签名确保数据未被篡改。
(2)、协作关系
[1]、哈希与对称加密的结合(数据安全传输)
- 哈希解决“数据完整性”:(无法逆向)
- 例如:验证文件是否被篡改时,计算哈希值并对比。
- 加密解决“数据保密性”:
- 例如:HTTPS中,数据通过AES加密传输,确保第三方无法窃取。
- 联合应用:
- 加密+哈希:在加密数据前先计算哈希值,加密后同时传输密文和哈希值,接收方解密后重新计算哈希进行验证(确保数据未被篡改)。
[2]、哈希与非对称加密的结合(数据签名)
- 签名 = 哈希 + 非对称加密:
- 哈希压缩数据:对明文生成固定长度摘要(如SHA-256)。
- 非对称加密签名:用私钥加密哈希值,生成签名。
- 公钥验证:接收方用公钥解密签名,对比重新计算的哈希值。
- 典型流程:
明文 → 哈希 → 私钥加密(签名) → 传输 → 公钥验证签名 → 对比哈希值
6、实际生产中的建议
(1)、仅需完整性验证:
- 选择哈希算法(如SHA-256),例如文件校验、密码存储。
(2)、需保密性:
- 对称加密(AES)用于大数据,非对称加密(RSA)用于密钥交换。
(3)、需身份验证与不可否认性:
- 签名算法(ECDSA、RSA签名)结合哈希,例如数字证书、区块链交易。
逆风翻盘,Dare To Be!!!