HAVAL 是 1992 年由郑玉良、Pieprzyk 和 Seberry 提出的变长哈希函数,特点是输出长度(128/160/192/224/256 位)和通过次数(3、4 或 5 遍)都可以选。下面重点说明多语言片段。
Haval代码示例合集
Python:
# 标准库无 HAVAL,可用 PyCryptodome 等第三方库或调用 PHP/OpenSSLJavaScript:
// 浏览器不内置 HAVAL,需引入专用实现Java:
// 需 BouncyCastle 等提供 HAVAL 的提供者
示例
输入:I ♥ Unicode
计算结果:57b3322b2efe3628cc2d79fa3e30d7a06dc76f16115b9df101516ee24cc38de1
说明:HAVAL-256,5 次通过(PHP hash("haval256,5", ...) 对 UTF-8 字节计算)。
规则说明
- 写名称时同时给出位数和遍数,例如 haval256,5
- 输入是字节,中文要约定 UTF-8
- 不要把它当作现代安全哈希来保护签名或密码
- Python 标准库不提供 HAVAL,常见计算来源是 PHP hash() 或 OpenSSL 的部分编译选项
Go 示例
下面是 Go 中处理Haval的常用写法:
// 标准库无 HAVAL,需第三方实现运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的哈希全家桶工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【128 和 256 能互相换算吗?】不能。不同输出长度是不同参数下的不同结果,不是简单截断。
【HAVAL-256,5 是什么意思?】输出 256 位,经过 5 次通过。
【“abc”的 HAVAL-256,5 是多少?】976cd6254c337969e5913b158392a2921af16fca51f5601d486e0a9de01156e7。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发