BigQuery FARM_FINGERPRINT prípade Kolízie

0

Otázka

Na farm_fingerprint hodnota v BigQuery je rovnaká pre dve rôzne reťazce. Akékoľvek Nápady, prečo? Vráti sa -2660876244907183769

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)
google-bigquery hash
2021-11-24 00:09:05
1

Najlepšiu odpoveď

0

Vo všeobecnosti je skôr triviálne nájsť zrážok v každom 64 bit hash. Takže, žiadne 64 bit hash môže zaručiť jedinečnosť, keď veľké množstvo hodnôt je indexované. FARM_FINGERPRINT používa Fingerprint64 funkciu v farmhash knižnica , ktorá je 64bit hash algoritmus, takže môžete tiež použiť rôzne prepočte funkciu ako MD5, SHA256, SHA512, atď. ako je to viac štandardizované. Pozri viac prepočte funkcie.

Aj verejné problém tracker bol otvorený o to podobný problém, ale to nakoniec bola uzavretá, pretože zrážky pomocou akéhokoľvek hash algoritmus je viazané na štát. Ale to môže byť ešte veľmi dlho. Pozri https://crypto.stackexchange.com/questions/47809/why-havent-any-sha-256-collisions-been-found-yet

2021-11-24 05:20:21

Vďaka za vysvetlenie!
Shawn

@Shawn, ak to odpovedal na vašu otázku, zvážiť prijatie to kliknutím na políčko na ľavej strane. Tiež sa pozri , Čo mám robiť, keď niekto odpovie na moju otázku?
Dondi

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................