BigQuery FARM_FINGERPRINT případě Kolize

0

Otázka

Na farm_fingerprint hodnotu v nástroji BigQuery je stejný pro dva různé řetězce. Nějaké Nápady proč? Vrátí -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

Nejlepší odpověď

0

Obecně je to spíše triviální najít kolize v každém 64 bitový hash. Takže, žádný z 64 bit hash může zaručit jedinečnost, když se velké množství hodnot je indexována. FARM_FINGERPRINT používá Fingerprint64 funkce v farmhash knihovna , která je 64bit hash algoritmus, takže můžete také použít různé hashovací funkce jako MD5, SHA256, SHA512, atd. jak to je více standardizované. Viz více hashovací funkce.

Také veřejné issue tracker byl otevřen o tento podobný problém, ale to byl nakonec uzavřen od kolize pomocí nějaké hashovací algoritmus je vázán na stát. Ale mohlo by to být ještě velmi dlouhou dobu. Vidět https://crypto.stackexchange.com/questions/47809/why-havent-any-sha-256-collisions-been-found-yet

2021-11-24 05:20:21

Díky za objasnění!
Shawn

@Shawne, jestli to odpověděl na vaši otázku, zvážit přijetí kliknutím na zaškrtnutí na levé straně. Viz také , Co mám dělat, když někdo odpoví na mou otázku?
Dondi

V jiných jazycích

Tato stránka je v jiných jazycích

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