36.12 哈希函数

通常需要判断两个字符串或文件是否相同。这可以通过逐字符比较来查找差异。然而,这种方法可能很慢,因此比较字符串或文件的哈希值可以快速判断文件是否不同。

哈希函数的另一个用途是检查文件完整性。用户可以将文件的哈希值与已知值进行比较,以检查他们拥有的文件是否与生成原始哈希值的文件相同。

Octave 提供 hash 函数来计算字符串和文件的哈希值,后者需与 fileread 函数结合使用。hash 函数支持许多常用的哈希方法。

 
hashval = hash ("hashfcn", str)

使用哈希函数 hashfcn 计算字符串 str 的哈希值。

可用的哈希函数如下表所示。

MD2

消息摘要算法 2(RFC 1319)。

MD4

消息摘要算法 4(RFC 1320)。

MD5

消息摘要算法 5(RFC 1321)。

SHA1

安全哈希算法 1(RFC 3174)

SHA224

安全哈希算法 2(224 位,RFC 3874)

SHA256

安全哈希算法 2(256 位,RFC 6234)

SHA384

安全哈希算法 2(384 位,RFC 6234)

SHA512

安全哈希算法 2(512 位,RFC 6234)

例如,要计算字符串 "abc" 的 MD5 哈希值,可按如下方式调用 hash 函数:

hash ("md5", "abc")
     -| ans = 900150983cd24fb0d6963f7d28e17f72

对于同一字符串,SHA-1 哈希值的计算方法如下:

hash ("sha1", "abc")
     -| ans = a9993e364706816aba3e25717850c26c9cd0d89d

为了计算文件的哈希值,例如 file = "file.txt",可以结合 fileread 调用 hash 函数:

hash ("md5", fileread (file));

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4