首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery FARM_FINGERPRINT碰撞案例

BigQuery FARM_FINGERPRINT碰撞案例
EN

Stack Overflow用户
提问于 2021-11-24 00:09:05
回答 1查看 79关注 0票数 1

对于两个不同的字符串,farm_fingerprint值在BigQuery中是相同的。知道为什么吗?它返回-2660876244907183769

代码语言:javascript
复制
SELECT id1, id2, id1=id2 AS is_equal
FROM (SELECT FARM_FINGERPRINT(TO_JSON_STRING(STRUCT('19BD0AF0854E2B90E10080000A802438','599D7E2A47B31E20E10080000A7824B8','001','020','100'))) AS id1,
FARM_FINGERPRINT(TO_JSON_STRING(STRUCT('DCE500729B5800F0E10080010A7824BA','5AF0A97293195320E10080010A782421','001','001','110'))) AS id2)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-24 04:15:28

通常,在任何64位哈希中查找冲突都是非常简单的。因此,当大量的值被索引时,64位散列都不能保证您的唯一性。FARM_FINGERPRINT使用64位哈希算法的农哈希库中的Fingerprint64函数,所以您可以使用一个不同的哈希函数,比如MD5、SHA256、SHA512等等,因为它更标准化。见更多散列函数

同样,对于这个类似的问题,也打开了一个公共问题跟踪器,但是它最终被关闭了,因为使用任何哈希算法的冲突都一定会发生。但可能还需要很长时间。请参阅https://crypto.stackexchange.com/questions/47809/why-havent-any-sha-256-collisions-been-found-yet

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70089319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档