哈希算法的测试过程是什么?
What is the testbench process for hashing algorithms?
假设我写了一个标准算法的实现,比如MD*或SHA*:我怎么知道它是正确的?相同算法的不同实现必须产生相同的摘要?
参考文档本身包含少量可以使用的示例案例。(例如,"abc"
的哈希值存在于所有参考文档中。)此外,Aaron Gifford还在http://www.adg.us/computers/sha.html上提供了一些测试用例。特别是,他对一些边界情况进行了测试(其中文本正好是一个块的长度,或者少于一个块的长度),以及其他一些特殊长度。如果您的实现为所有这些计算出正确的值,那么很有可能它是正确的。
就是这样。然而,一些散列算法有变化/设置,所以如果是这种情况,你需要匹配这些。
一个很好的例子是如何经常给出MD5来验证您的下载是否正确。为了使其工作,MD5哈希实现需要为所有实现产生相同的结果。相关文章:
- 使用rdtsc进行基准测试的缺点是什么
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 复制文件的最佳方式是什么,以便我可以在复制过程中轻松取消复制?
- 这个循环测试条件是什么意思?
- 使用Google Test API进行C 测试私人方法的可能方法是什么?
- 测试用户输入数组中的重复项的最有效方法是什么?
- 在保留类名的同时弃用类模板的正确过程是什么?
- 使用 Catch2 编译多个测试源的正确方法是什么?
- 将大量数据从C 应用程序传递到SQLServer存储过程的最快方法是什么?
- 测试DLL函数的最佳方法是什么
- 破坏vulkan以测试调试回调是否正确设置的好方法是什么
- 测试使用visual studio编写的C++android应用程序的最佳方法是什么.不升级到windows专业版
- 测试指针是否为null的最有效方法是什么?
- 在Windows上运行cygwin的C ++程序的安装后过程是什么
- C++;编译过程中的警告"enabled by default"是什么意思?
- 在C++11类型推理过程中,控制优先级的规则是什么
- 用Xcode 4配置谷歌测试的正确方法是什么
- 哈希算法的测试过程是什么?