HAVAL 是 1992 年由郑玉良、Pieprzyk 和 Seberry 提出的变长哈希函数,特点是输出长度(128/160/192/224/256 位)和通过次数(3、4 或 5 遍)都可以选。下面重点说明函数与示例。
用 PHP 处理 Haval
下面是 PHP 中处理Haval的常用写法:
echo hash("haval256,5", "abc");
echo hash("haval128,3", "");运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
示例
输入:<b>粗体</b>
计算结果:39c760277f9c50713c5802e986165850ee3dcf1de071fce18830b80ebed6656d
说明:HAVAL-256,5 次通过(PHP hash("haval256,5", ...) 对 UTF-8 字节计算)。
核心要点
- 输出可选 128、160、192、224、256 位
- 通过次数可选 3、4、5,次数越多越慢、设计上被认为更稳妥
- 空字符串的 HAVAL-128,3 是 c68f39913f901f3ddf44c707357a7d70
- “abc”的 HAVAL-256,5 是 976cd6254c337969e5913b158392a2921af16fca51f5601d486e0a9de01156e7
- 必须同时写明输出位数和通过次数,否则结果无法对照
Python 示例
下面是 Python 中处理Haval的常用写法:
# 标准库无 HAVAL,可用 PyCryptodome 等第三方库或调用 PHP/OpenSSL运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的哈希全家桶工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【Python 怎么算?】标准库没有,需要第三方实现或调用 OpenSSL/PHP。
【还能用于证书或密码吗?】不建议。请改用 SHA-256、Argon2 等现代算法。
【128 和 256 能互相换算吗?】不能。不同输出长度是不同参数下的不同结果,不是简单截断。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发