哈希算法的测试过程是什么?

What is the testbench process for hashing algorithms?

本文关键字:是什么 测试过程 算法 哈希      更新时间:2023-10-16

假设我写了一个标准算法的实现,比如MD*或SHA*:我怎么知道它是正确的?相同算法的不同实现必须产生相同的摘要?

参考文档本身包含少量可以使用的示例案例。(例如,"abc"的哈希值存在于所有参考文档中。)此外,Aaron Gifford还在http://www.adg.us/computers/sha.html上提供了一些测试用例。特别是,他对一些边界情况进行了测试(其中文本正好是一个块的长度,或者少于一个块的长度),以及其他一些特殊长度。如果您的实现为所有这些计算出正确的值,那么很有可能它是正确的。

就是这样。然而,一些散列算法有变化/设置,所以如果是这种情况,你需要匹配这些。

一个很好的例子是如何经常给出MD5来验证您的下载是否正确。为了使其工作,MD5哈希实现需要为所有实现产生相同的结果。