让我先说一下我没有使用它来存储密码或任何其他敏感信息 - 我只想要一个我可以在以后使用的行级sha / hash或快速检查唯一记录。我的桌子将在长边上,在0.1到10万亿行的范围内。
我使用的是Snowflake datawarehouse,因此我的选项是SHA1,SHA2,MD5(每个都有二元选项)和HASH。
我想我想最大限度地减少碰撞的可能性(考虑到长桌),而不会不必要地烧掉我的计算信用。
根据我的用例,哪一个是最佳选择?
答案 0 :(得分:1)
如果您可以接受某些冲突,内置的hash
函数应该足够好。它可以比MD5 / SHA函数快得多,并且考虑到输出它会产生良好的散列,但它会产生较小范围的散列(64位输出),因此更容易引起更多冲突。
如果您不需要冲突,显然没有哈希函数可以保证这一点。
当您想要以与使用其中一种算法计算哈希的其他系统兼容的形式计算字符串的哈希时, MD5
/ SHA
函数非常有用。