当我的应用程序被错误传递的 SHA-160 和所欺骗时,我想测试我的应用程序,因此我想计算对正在求和的数据的更改,这会再次产生原始 SHA-160 和,因此会被遗漏。我正在使用 C++ 中的 Botan 库来计算总和。
如何计算大约 1500 位的比特流的变化,使其 SHA-160 与原始比特流相同?
最佳答案
简短的回答是:你不能。
长话短说:你可以,但前提是拥有大量的计算能力。散列算法的全部目的是使其难以发现冲突。如果很容易发现冲突,那么使用哈希算法就没有意义了。
为了解决您的测试问题,我建议将应用程序的文件读取/哈希计算部分抽象到一个单独的类中,然后 mocking它带有伪造的哈希实现,以便测试应用程序的其余部分。
关于c++ - 如何计算具有相同 SHA-160 总和的另一个位模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383153/