Sözlük

ZIP CRC nedir?

CRC veya ZIP CRC, sıkıştırılmış arşiv dosyalarında sıkça bulunan bir meta veri değeridir. CRC'nin ne anlama geldiğini ve bu değerin kendi dosyanız hakkında size ne söylediğini öğrenmek için okumaya devam edin.

zip-crc

CRC, bir dosya arşive eklendiği anda, dosyanın içeriğinden hesaplanan kısa bir sayıdır. Bir parmak izi gibi çalışır; böylece dosyanın arşivden, arşive girdiğiyle tam olarak aynı şekilde geri çıkıp çıkmadığını sonradan kontrol etmek için kullanılabilir. CRC, cyclic redundancy check (döngüsel artıklık denetimi) ifadesinin kısaltmasıdır.

Nereden gelir ve hangi dosyalarda bulunur

Arşivler bunu taşır. Yani ZIP dosyaları ve ZIP temel alınarak oluşturulan pek çok format, örneğin .docx, .xlsx, .epub, .jar ve .apk; buna karşılık RAR, 7z ve diğer formatlar kendi sağlama toplamlarını tutar. Dosya aslında bu bilgiyi saklasa bile, bir rapor .epub dosyaları için bunu listelemeyebilir.

Sıkıştırma programı, değeri dosyanın özgün, sıkıştırılmamış içeriği üzerinden hesaplar ve her girdinin yanına kaydeder; böylece bir arşivdeki her öğenin kendi CRC değeri olur. Bu değeri siz seçemezsiniz ya da yazamazsınız ve bu değer sizin veya bilgisayarınız hakkında bir bilgi değildir. Tamamen dosyanın baytlarından türetilir.

Bu değeri saklamanın amacı, daha sonra yapılacak karşılaştırmadır. Arşiv açıldığında, program yeni çıkardığı içerikten CRC'yi tekrar hesaplar ve ikisini karşılaştırır. Farklılarsa, WinZip, 7-Zip veya unzip içinde alışık olduğunuz CRC hata mesajını görürsünüz; bu da çıkarılan dosyanın, ilk eklenen dosyayla eşleşmediği anlamına gelir. Bu durum, bir yerlerde hasar oluştuğuna işaret eder: yarım kalmış bir indirme, arızalanan bir disk, eksik kopyalanmış bir dosya gibi. Arşivdeki diğer her şey sağlam olsa bile, tek bir hasarlı öğe bu mesajın çıkması için yeterlidir.

Değerin nasıl göründüğü

ZIP, CRC-32 adlı bir varyant kullanır ve bu da 32 bitlik bir sayı üretir. Genellikle sekiz onaltılık basamak olarak gösterilir, örneğin 0x8f3d2b1c, ve bazı araçlar aynı değeri bunun yerine uzun bir ondalık sayı olarak yazar. Bu değerin birimi yoktur ve hangi değerin daha iyi veya daha kötü olduğuna dair bir ölçek bulunmaz. Boş bir dosya ve veri içermeyen bir klasör girdisi 0x00000000 gösterir.

Neden önemli olduğu

Bu bir bütünlük (integrity) alanıdır ve içeriğin saklama ve aktarım sırasında korunduğuna dair arşivin kendi yerleşik kanıtıdır. Bir meta veri raporunda CRC görmeniz, arşivinizde bir sorun olduğu anlamına gelmez. Bu sadece, arşiv oluşturulurken kaydedilen değerdir; gerçek kontrol, bakarken değil, çıkarma işlemi sırasında yapılır.

Bunun kullanışlı bir yan etkisi vardır. Aynı içerik her zaman aynı CRC'yi üretir; dolayısıyla aynı CRC'ye ve aynı boyuta sahip iki girdi, neredeyse kesin olarak aynı dosyadır. Bu da büyük bir arşiv içinde kopya dosyaları hızlıca fark etmenin pratik bir yoludur.

CRC bir güvenlik özelliği değildir. CRC, kazara oluşan hasarı yakalamak için tasarlanmıştır ve yeterince kısadır; bu yüzden aynı değere kasıtlı olarak da ulaşılabilir. Dolayısıyla, CRC kontrolünün geçmesi, dosyanın kimse tarafından değiştirilmediğinin kanıtı değildir. Bu iş için SHA-256 gibi kriptografik hash değerleri kullanılır. Değer içerikten türetildiği için, iki farklı arşivin aynı dosyayı içerip içermediğini anlamak amacıyla da kullanılabilir; bu da bazen işe yarar ve bir arşivi başkasına vermeden önce hatırlamaya değer olabilir.