c++ - 如何计算具有相同 SHA-160 总和的另一个位模式?

标签 c++ sha false-positive botan

当我的应用程序被错误传递的 SHA-160 和所欺骗时,我想测试我的应用程序,因此我想计算对正在求和的数据的更改,这会再次产生原始 SHA-160 和,因此会被遗漏。我正在使用 C++ 中的 Botan 库来计算总和。

如何计算大约 1500 位的比特流的变化,使其 SHA-160 与原始比特流相同?

最佳答案

简短的回答是:你不能。

长话短说:你可以,但前提是拥有大量的计算能力。散列算法的全部目的是使其难以发现冲突。如果很容易发现冲突,那么使用哈希算法就没有意义了。

为了解决您的测试问题,我建议将应用程序的文件读取/哈希计算部分抽象到一个单独的类中,然后 mocking它带有伪造的哈希实现,以便测试应用程序的其余部分。

关于c++ - 如何计算具有相同 SHA-160 总和的另一个位模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383153/

相关文章:

C++:正确的内联语法

c++ - Armadillo : Can not find clapack. h

Tensorflow 高误报率和非最大抑制问题

google-chrome - 谷歌浏览器 : File is malicious

c++ - 如何分析静态/全局初始化?

c++ - 求1到100素数的程序问题

python - 使用盐在 SHA512 中进行散列? - Python

hibernate - 需要解释事先冲洗的必要性以避免在使用 Spring 进行测试时出现误报吗?

cryptography - SHA-512防撞吗?

java - php 的 hmac sha256 实现与 java 的不匹配