0

让我先说我没有使用它来存储密码或任何其他敏感信息——我只是想要一个以后可以使用或快速检查唯一记录的行级 sha/hash。我的表会偏长,在 0.1 到 10 万亿行的范围内。

我正在使用Snowflake datawarehouse,因此我的选项是 SHA1、SHA2、MD5(每个都有二进制选项)和HASH

我想我想尽量减少冲突的机会(考虑到长表),而不是不必要地消耗我的计算积分

考虑到我的用例,哪一个是最佳选择?

4

1 回答 1

1

如果您可以接受一些冲突,内置hash功能应该足够好。它可以比 MD5/SHA 函数快得多,并且考虑到它的输出,它会产生良好的哈希值,但它产生的哈希值范围更小(64 位输出),因此更有可能导致更多的冲突。

如果您不需要冲突,那么显然没有哈希函数可以保证这一点。

MD5/SHA函数在您想要以与使用这些算法之一计算哈希的其他系统兼容的形式计算字符串的哈希时最有用。

于 2017-12-20T18:54:17.070 回答