跳到主要内容

5. Calculation of the Hash (哈希计算)

5. Calculation of the Hash (哈希计算)

哈希计算使用 NSEC3 RDATA 字段中的三个: Hash Algorithm, Salt, 和 Iterations。

定义 H(x) 为使用 NSEC3 RR 选择的 Hash Algorithm 对 x 的哈希, k 为 Iterations 的数量, || 表示连接。然后定义:

IH(salt, x, 0) = H(x || salt), 和

IH(salt, x, k) = H(IH(salt, x, k-1) || salt), 如果 k > 0

那么所有者名称的计算哈希为

IH(salt, owner name, iterations),

其中所有者名称采用规范形式 (canonical form), 定义为:

所有者名称的线路格式 (wire format), 其中:

  1. 所有者名称完全展开 (没有 DNS 名称压缩) 并完全限定 (fully qualified);

  2. 所有大写 US-ASCII 字母替换为相应的小写 US-ASCII 字母;

  3. 如果所有者名称是通配符名称 (wildcard name), 则所有者名称采用其原始未展开形式, 包括 "*" 标签 (没有通配符替换);

此形式如 [RFC4034] 的 6.2 节所定义。

计算 Hash 的方法基于 [RFC2898]。