Her iki dosyadaki CRC'leri (veya daha iyisi sha1sums) hesaplamak her baytın yine de okunmasını gerektirir. Bayt byte karşılaştırması yaparsanız, bir uyumsuzluk görür görmez bırakabilirsiniz - ve aynı sağlama toplamına sahip olan iki farklı dosya hakkında endişelenmenize gerek yoktur (ancak sha1sum için bu olası değildir) . Dolayısıyla, karşılaştırmayı yerel olarak yapıyorsanız, bayt byte karşılaştırması en azından sağlama toplamı karşılaştırması kadar hızlı olacaktır (zaten sağlama toplamlarını zaten hesaplamadıysanız).
Öte yandan, sağlama toplamı karşılaştırmaları aynı makinede olmayan dosyaları karşılaştırırken yararlıdır; sağlama toplamları yerel olarak hesaplanabilir ve tüm içeriği ağ üzerinden aktarmanız gerekmez.
Hibrit yaklaşımlar da mümkündür. Örneğin, hesaplamak ve (bütün dosyaları okuma önleyebilirsiniz bir anda iki dosyanın bir yığın, için sağlama karşılaştırmak olabilir eğer onlar farklı) da ağ üzerinden tüm dosyayı iletmek kaçınırken. Rsync protokolü böyle bir şey yapar.
Basit bir CRC kullanmanın, Dave Rager'ın cevabında belirttiği gibi, size bir çarpışma şansı verdiğini unutmayın. En azından sha1sum, hatta daha yeni bir şey kullanın . (Kendi karma algoritmanızı icat etmeye çalışmayın; sha1sum geliştiren insanlar bu şeyler hakkında ikimizden de çok daha fazlasını bilirler.)
Çarpışma olasılığına gelince, sha1sum gibi iyi bir karma kullanırsanız, birileri kasıtlı ve pahalı bir şekilde sha1sums çarpıştığı dosyaları oluşturmadıkça (bu tür çarpışmalar oluşturmak ilk kez yazdığımda mümkün değildi) , ancak ilerleme kaydediliyor ). Aktaran Scott Chacon yönettiği "Pro Git" , bölüm 6.1 :
İşte size bir SHA-1 çarpışması için ne yapılması gerektiğine dair bir fikir vermek için bir örnek. Dünyadaki 6,5 milyar insanın tümü programlıysa ve her saniye, her biri tüm Linux çekirdek geçmişinin (1 milyon Git nesnesi) eşdeğeri olan bir kod üretiyordu ve onu muazzam bir Git deposuna itiyordu, 5 yıl sürecekti havuzun tek bir SHA-1 nesne çarpışması olasılığının% 50 olması için yeterli nesne içermesi. Programlama ekibinizin her üyesinin, aynı gece ilgisiz olaylarda kurtlar tarafından saldırıya uğrayıp öldürülme olasılığı daha yüksektir.
Özet:
Bayt byte karşılaştırması yerel karşılaştırmalar için iyidir. sha1sum uzaktan karşılaştırma için iyidir ve önemli ölçüde yanlış pozitif şansı göstermez.