performance - MD* 或 SHA-* 中是否有任何 "out of band"哈希值?

标签 performance hash md5 sha

是否有任何常见的哈希算法定义了“带外”哈希码,即保证永远不会成为算法结果的哈希码?

最佳答案

MD* 或 SHA-* 系列算法都没有带外哈希值。

如果你想自己实现这一点,你可以使用以下逻辑:

  • 选择一个随机哈希值作为带外值。
  • 计算哈希。
  • 如果哈希值(不太可能)结果是带外哈希值,则分配另一个哈希值。

  • 在伪代码中:
    OutOfBandHash = 0xdeadbeefdeadbeefdeadbeefdeadbeef
    h = hash(stuff)
    if h = OutOfBandHash
        h = OutOfBandHash + 1
    

    关于performance - MD* 或 SHA-* 中是否有任何 "out of band"哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26692922/

    相关文章:

    c++ - 从 boost::hash 获取 32 位哈希值

    c# - 哈希整数数组

    android - 使用私钥、RSA-SHA1 签名和 Android 中的 md5 签名字符串

    c++ - 有没有更快的方法可以在std::vector中插入元素

    java - 使用散列法查找总长度最小的字符串子数组,该子数组包含原始数组中的所有不同字符串

    php - JS 和 PHP 的 md5 相同

    encryption - MD5二进制模式和文本模式之间有什么区别?

    performance - hibernate v/s 存储过程或函数性能

    ios - 抗锯齿、UIImage 和性能

    java - 为什么整数在 java 中仅对小于 128(默认值)的值充当实习生