gpt4 book ai didi

hash - 512 位哈希 vs 4 128 位哈希

转载 作者:行者123 更新时间:2023-12-04 16:40:57 25 4
gpt4 key购买 nike

有趣的是,我还没有找到足够的关于单个 512 位散列(如 whirlpool)与 4 个 128 位散列(如 md5、sha1 等)串联的碰撞机会的测试或实验的信息。

当执行散列的数据非常小,平均只有 100 个字符时,4 个 128 位散列看起来相同的可能性似乎比单个 512 位散列的可能性小。

但这只是一个没有根据的明显猜测,因为我没有进行任何测试。你怎么想的?

编辑 就像是
512 位哈希与 128 位哈希。 128 位哈希。 128 位哈希。 128 位哈希(4 个 128 位哈希串联)

编辑 2
我想为此使用哈希 index on url or hashing considering RAM
目的是尽量减少冲突的可能性,因为我想将哈希列设置为唯一而不是 url 列。

编辑3
请注意,这个问题的目的是找到最小化碰撞可能性的方法。话虽如此,为什么我需要更多地关注最小化碰撞的可能性?这是我的 Edit2 描述,它导致找到使用更少 RAM 的解决方案。因此,利益在于最小化冲突和降低 RAM 使用率。但这个问题的主要焦点是降低碰撞的可能性。

最佳答案

听起来您想比较以下碰撞行为:

hash512(x)

碰撞行为为:
hash128_a(x) . hash128_b(x) . hash128_c(x) . hash128_d(x)

其中“ . ”表示连接,而 hash128_a , hash128_b等是四种不同的 128 位哈希算法。

答案是:它完全取决于所涉及的单个散列的属性。

例如,考虑 128 位哈希函数可以实现为:
uint128_t hash128_a(T x)   { return hash512(x)[  0:127]; }
uint128_t hash128_b(T x) { return hash512(x)[128:255]; }
uint128_t hash128_c(T x) { return hash512(x)[256:383]; }
uint128_t hash128_d(T x) { return hash512(x)[384:511]; }

在这种情况下,性能将是相同的。

关于hash - 512 位哈希 vs 4 128 位哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com