gpt4 book ai didi

javascript - 对 xxHash 感到困惑

转载 作者:行者123 更新时间:2023-11-29 20:55:52 32 4
gpt4 key购买 nike

我正在使用 xxHash 从元素 id 创建哈希。我只是不想在网站上显示真实身份。我创建了脚本来测试是否有获取相同哈希值的选项:

const _ = require('lodash');
const XXH = require('xxhashjs');

let hashes = []
let uniq_hashes = []

for(let i = 0; i < 1000000; i++){
var h = XXH.h32(i.toString(), 0xABCD).toString(16)
hashes.push(h)
}

uniq_hashes = _.uniq(hashes)
console.log(hashes.length, uniq_hashes.length);

脚本中的日志是 1000000 999989,因此一些哈希是相同的。 xxHash 的工作方式是否正确?

此外,第一对是 '1987' 和 '395360'

如果我需要真正独特的哈希值(无加密),我应该使用什么?

最佳答案

根据生日悖论,您应该在 1:16^2 或 10^6/2^16 = ~15 左右看到碰撞,所以 11 次碰撞似乎是正确的。 (注意:数学被大大简化了,请参阅 Birthday problem 以获得良好的数学。)

减少冲突次数会增加散列大小并使用加密散列,例如 SHA-256。加密哈希函数旨在避免冲突。

关于javascript - 对 xxHash 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49403655/

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