我正在寻找一种对从第三方服务获得的用户ID进行散列的方法,以便可以将散列用作主键。
我的理解是,在保证输入字符串唯一的情况下,通常的div
样式算法无法保证生成的哈希值也必须唯一。
是否存在将产生唯一哈希的哈希算法?
更具体地说,NodeJS 10.9或更高版本是否支持这种算法?
答案 0 :(得分:1)
大多数哈希算法都在尽力避免冲突。 SHA 512应该适合您,即使不是SHA 256也应该适合您。请注意,如果您看到输入数据中存在冲突,则哈希中将存在冲突,在这种情况下,我建议为两个单独的帐户附加可能唯一的其他内容-例如作为时间戳,它们是在将值输入到哈希之前创建的。只要两个输入都是不可变的,并且它们在帐户中永不更改,就可以正常工作。
您可以使用crypto.getHashes()
查看可用的哈希并选择所需的哈希。您是在要求唯一性而不是安全性,所以更快是更好的选择。
此答案也与以下内容有关: When using SHA-256 hashes as a primary key, is it OK to ignore the possibility of collisions?
答案 1 :(得分:1)