BigQuery FARM_FİNGERPRİNT Çarpışma durumu

0

Soru

Bigquery'deki farm_fingerprint değeri iki farklı dize için aynıdır. Herhangi bir Fikir neden? -2660876244907183769 değerini döndürür

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

En iyi cevabı

0

Genel olarak, herhangi bir 64 bit karmada çarpışmaları bulmak oldukça önemsizdir. Bu nedenle, 64 bit karmaların hiçbiri, büyük miktarda değer dizine eklendiğinde size benzersizliği garanti edemez. FARM_FİNGERPRİNT, 64bit karma algoritması olan farmhash kitaplığında Fingerprint64 işlevini kullanır, böylece MD5, SHA256, SHA512 vb. Gibi farklı bir karma işlevi de kullanabilirsiniz. daha standart olduğu için. Daha fazla karma işlevi görün.

Ayrıca, bu benzer sorunla ilgili bir genel sorun izleyici açıldı, ancak herhangi bir karma algoritmayı kullanan çarpışmaların gerçekleşmesi gerektiği için sonunda kapatıldı. Ama yine de çok uzun bir zaman olabilir. Bakın https://crypto.stackexchange.com/questions/47809/why-havent-any-sha-256-collisions-been-found-yet

2021-11-24 05:20:21

Açıklama için teşekkürler!
Shawn

@Shawn, bu sorunuza cevap verdiyse, sol taraftaki onay işaretini tıklatarak kabul etmeyi düşünün. Ayrıca Bkz: Ne yapmalıyım ne zaman birisi cevaplarım soru?
Dondi

Diğer dillerde

Bu sayfa diğer dillerde

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