Kullanım
md5 [-pqrtx] [-c string] [-s string] [file ...]
md5sum [-bctwz] [--binary] [--check] [--help] [--ignore-missing] [--quiet] [--status]
[--strict] [--tag] [--text] [--version] [--warn] [--zero] [file ...]
(Diğer tüm hash'ler aynı seçeneklere ve kullanıma sahiptir.)
shasum [-0bchqstUvw] [--01] [-a | --algorithm alg] [--binary] [--check] [--help]
[--ignore-missing] [--quiet] [--status] [--strict] [--tag] [--text] [--UNIVERSAL]
[--version] [--warn] [file ...]
Açıklama
md5, sha1, sha224, sha256, sha384 ve sha512 yardımcı programları, girdi olarak keyfi uzunlukta bir mesaj alır ve girdi için bir "parmak izi" (fingerprint) veya "mesaj özeti" (message digest) üretir.
md5sum, sha1sum, sha224sum, sha256sum, sha384sum ve sha512sum yardımcı programları da aynısını yapar, ancak benzer adlara sahip GNU yardımcı programlarınınkilerle eşleşen komut satırı seçenekleri ve çıktı biçimi sunarlar.
Tüm durumlarda, komut satırında listelenen her dosya ayrı ayrı işlenir. Komut satırında hiçbir dosya listelenmemişse veya dosya adı - olarak verilmişse, girdi bunun yerine stdin'den alınır.
Aynı mesaj özetine sahip iki mesaj üretmenin veya önceden belirtilen belirli bir hedef mesaj özetine sahip herhangi bir mesaj üretmenin hesaplama açısından imkansız olduğu tahmin edilmektedir. SHA-224, SHA-256, SHA-384 ve SHA-512 algoritmaları, büyük bir dosyanın RSA gibi bir açık anahtarlı şifreleme sistemi altında özel (gizli) bir anahtarla şifrelenmeden önce güvenli bir şekilde "sıkıştırılması" gereken dijital imza uygulamaları için tasarlanmıştır.
MD5 ve SHA-1 algoritmalarının pratik çakışma (collision) saldırılarına karşı savunmasız olduğu kanıtlanmıştır; bu nedenle benzersiz çıktılar üretmek için bunlara güvenilmemeli ve bir kriptografik imza şemasının parçası olarak kullanılmamalıdırlar. 2017-03-02 itibarıyla, her iki algoritmayı da tersine çevirmek, yani belirli bir çıktıyı üreten bir girdi bulmak için kamuoyunca bilinen bir yöntem yoktur.
Tüm yeni uygulamaların diğer hash fonksiyonlarından biri yerine SHA-512 kullanması önerilir.
BSD SEÇENEKLERİ Aşağıdaki seçenekler BSD modunda, yani program "sum" ile bitmeyen bir adla çağrıldığında kullanılabilir:
-c string, --check=string Dosyanın özetini bu dize ile karşılaştırır. -q veya --quiet seçeneğiyle birleştirilirse, çıkış durumunun ayarlanmasına ek olarak hesaplanan özet de yazdırılır. (Birden fazla dosya belirtilmişse bu seçeneğin henüz yararlı olmadığını unutmayın.)
-p, --passthrough stdin'i stdout'a yankılar (echo) ve sağlama toplamını stdout'a ekler. Bu modda, komut satırında belirtilen tüm dosyalar sessizce yoksayılır.
-q, --quiet Sessiz mod — yalnızca sağlama toplamı yazdırılır. -r or --reverse seçeneğini geçersiz kılar.
-r, --reverse Çıktı biçimini tersine çevirir. Bu, görsel farkları (diffs) görmeye yardımcı olur. -ptx seçenekleriyle birleştirildiğinde hiçbir şey yapmaz.
-s string, --string=string Belirtilen dizenin sağlama toplamını yazdırır. Bu modda, komut satırında belirtilen tüm dosyalar sessizce yoksayılır.
-t, --time-trial Yerleşik bir zaman denemesi (time trial) çalıştırır. -sum sürümleri için bu, coreutils ile uyumluluk adına bir no-op (işlemsiz) durumdur.
-x, --self-test Yerleşik bir test betiği çalıştırır.
GNU SEÇENEKLERİ Aşağıdaki seçenekler GNU modunda, yani program "sum" ile biten bir adla çağrıldığında kullanılabilir:
-b, --binary Dosyaları ikili (binary) modda okur.
-c, --check Argüman olarak aktarılan dosya, klasik BSD biçiminde veya GNU coreutils biçiminde aynı özet algoritması tarafından üretilen özet satırlarını içermelidir. Özet dosyasındaki düzgün biçimlendirilmiş her satır için dosya adının ardından iki nokta üst üste ":" ve OK veya FAILED yazılır. Varsa, başarısız karşılaştırmaların sayısı ve düzgün biçimlendirilmediği için atlanan satırların sayısı sonda yazdırılır. --quiet seçeneği, özette eşleşmeyen girdiler olmadığı sürece çıktıyı susturmak için kullanılabilir.
--help: Bir kullanım mesajı yazdırır ve çıkar.
--ignore-missing Sağlama toplamlarını doğrularken, sağlama toplamları verilen ancak diskte bulunmayan dosyaları yoksayar.
--quiet Sağlama toplamlarını doğrularken, doğrulama başarısız olmadıkça hiçbir şey yazdırmaz.
--status Sağlama toplamlarını doğrularken hiçbir şey yazdırmaz. Çıkış kodu, doğrulamanın başarılı olup olmadığını yansıtacaktır.
--strict Sağlama toplamlarını doğrularken, girdi hatalı biçimlendirilmişse başarısız olur.
--tag: BSD tarzı çıktı üretir.
-t, --text Dosyaları metin (text) modunda okur. Varsayılan değer budur. Bu uygulamanın ikili ve metin modu arasında bir ayrım yapmadığını unutmayın.
--version Sürüm bilgilerini yazdırır ve çıkar.
-w, --warn Sağlama toplamlarını doğrularken, hatalı biçimlendirilmiş girdi hakkında uyarır.
-z, --zero Çıktı satırlarını yeni satır (newline) yerine NUL ile sonlandırır.
Çıkış Durumu
md5, sha1, sha224, sha256, sha384 ve sha512 yardımcı programları başarı durumunda 0, girdi dosyalarından en az biri okunamadıysa 1 ve en az bir dosya -c seçeneğiyle aynı hash değerine sahip değilse 2 değeriyle çıkar.
md5sum, sha1sum, sha224sum, sha256sum, sha384sum ve sha512sum yardımcı programları başarı durumunda 0, girdi dosyalarından en az biri okunamadıysa veya sağlama toplamları doğrulanırken beklenen sağlama toplamına sahip değilse 1 değeriyle çıkar.
Örnekler
“Hello” dizesinin MD5 sağlama toplamını hesaplayın.
$ md5 -s Hello
MD5 ("Hello") = 8b1a9953c4611296a827abf8c47804d7
Yukarıdakiyle aynıdır, ancak girdi dizesinde yeni satır (newline) karakterinin olmadığına dikkat edin:
$ echo -n Hello | md5
8b1a9953c4611296a827abf8c47804d7
Çıktıyı tersine çevirerek birden fazla dosyanın sağlama toplamını hesaplayın:
$ md5 -r /boot/loader.conf /etc/rc.conf
ada5f60f23af88ff95b8091d6d67bef6 /boot/loader.conf
d80bf36c332dc0fdc479366ec3fa44cd /etc/rc.conf
Bu çıktı, GNU modundan elde edilen çıktıyla neredeyse aynıdır ancak tamamen aynı değildir:
$ md5sum /boot/loader.conf /etc/rc.conf
ada5f60f23af88ff95b8091d6d67bef6 /boot/loader.conf
d80bf36c332dc0fdc479366ec3fa44cd /etc/rc.conf
Hash ile dosya adı arasındaki iki boşluğa dikkat edin. İkili (binary) mod talep edilirse, bunun yerine bir boşluk ve bir yıldız işareti ile ayrılırlar:
$ md5sum -b /boot/loader.conf /etc/rc.conf
ada5f60f23af88ff95b8091d6d67bef6 */boot/loader.conf
d80bf36c332dc0fdc479366ec3fa44cd */etc/rc.conf
/boot/loader.conf için özeti digest adında bir dosyaya yazın. Ardından sağlama toplamını tekrar hesaplayın ve digest dosyasından çıkarılan sağlama toplamı dizesine göre doğrulayın:
$ md5 /boot/loader.conf > digest && md5 -c $(cut -f2 -d= digest) /boot/loader.conf
MD5 (/boot/loader.conf) = ada5f60f23af88ff95b8091d6d67bef6
Yukarıdakiyle aynıdır ancak özeti geçersiz bir dizeyle (“randomstring”) karşılaştırır ve bu da başarısızlıkla sonuçlanır.
$ md5 -c randomstring /boot/loader.conf
MD5 (/boot/loader.conf) = ada5f60f23af88ff95b8091d6d67bef6 [ Failed ]
GNU modunda, -c seçeneği parametre olarak aktarılan bir hash dizesiyle karşılaştırma yapmaz. Bunun yerine, yukarıdaki örnekte /boot/loader.conf için digest adı altında oluşturulan gibi bir özet dosyası bekler.
$ md5 -c digest /boot/loader.conf
/boot/loader.conf: OK
Özet dosyası, BSD veya GNU modunda oluşturulan biçimde herhangi bir sayıda satır içerebilir. Bir hash değeri dosya ile eşleşmezse "OK" yerine "FAILED" yazdırılır.
Ayrıca Bakınız
cksum(1), md5(3), sha(3), sha256(3), sha384(3), sha512(3)
R. Rivest, The MD5 Message-Digest Algorithm, RFC1321.
J. Burrows, The Secure Hash Standard, FIPS PUB 180-2.
D. Eastlake and P. Jones, US Secure Hash Algorithm 1, RFC 3174.
Secure Hash Standard (SHS): https://www.nist.gov/publications/secure-hash-standard-shs
Teşekkürler (Acknowledgments)
Bu yardımcı program, aslen RSA Data Security tarafından ücretsiz genel kullanım için kamu malı (public domain) olarak sunulmuş olan bir programdan türetilmiştir.
SHA-1 desteği Oliver Eikemeier eik@FreeBSD.org tarafından eklenmiştir.
SHA-2 desteği Colin Percival cperciva@FreeBSD.org ve Allan Jude allanjude@FreeBSD.org tarafından eklenmiştir.
GNU coreutils ile uyumluluk Warner Losh imp@FreeBSD.org tarafından eklenmiş ve Dag-Erling Smørgrav des@FreeBSD.org tarafından oldukça genişletilmiştir.
macOS 26.4 February 13, 2024 macOS 26.4