Openssl-单向散列函数
Hash MD5 SHA1 SHA2 SHA3 国密SM3
openssl的HASH接口编程
编程应用校验文件完整性
掌握OpenSSL消息认证码(HMAC)编程
Hash List,模拟文件发送校验
Merkle Tree, 使用其写校验文件
文件完整
口令加密
消息认证码
MD5
- Step1: Append Padding Bits
取余448 = N * 512 + 448 - Step2: Apend Length
在加上448的基础上再加上64
=>512/8=64/4=16 - Step3:初始化MD缓冲区
word A: 01 23 45 67
word B:89 ab cd ef
word C:fe dc ba 98
word D:76 54 32 10 - Step4:以16字块处理消息
这里发现以前的MD5调用方法被弃用了,改用了EVP接口。
EVP 接口是 OpenSSL 提供的“高级加密接口”,用于统一和简化各种加密算法(如哈希、对称加密、非对称加密等)的调用方式。
主要作用:
- 统一不同算法的使用方法(如 MD5、SHA256、AES 等)。
- 提供更高的安全性和灵活性,便于算法切换和升级。
- 支持硬件加速和新特性。
在哈希计算中的用法:
EVP_MD_CTX
表示一个消息摘要(哈希)上下文。EVP_DigestInit_ex
初始化哈希算法(如 EVP_md5())。EVP_DigestUpdate
输入数据。EVP_DigestFinal_ex
得到哈希结果。
总结:
EVP 接口让你用统一的方式调用各种加密和哈希算法,是 OpenSSL 推荐的现代用法。
1 |
|
哈希列表-验证文件完整性
- 哈希列表( Hash List )
- 读取文件,分块生成Hash值
- 合并所有Hash值再生成Hash值
- Hash(Hash(f1)……Hash(f100))
1 |
|
Openssl-单向散列函数
https://43.242.201.154/2025/07/25/Openssl-单向散列函数/