Synopsis
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 karma işlevleri 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 ...]
Description
md5, sha1, sha224, sha256, sha384 ve sha512 araçları girdi olarak keyfi uzunlukta bir mesaj alır ve çıktı olarak girdinin bir “parmak izini” veya “mesaj özetini” (message digest) üretir.
md5sum, sha1sum, sha224sum, sha256sum, sha384sum ve sha512sum araçları da aynı işlemi yapar, ancak benzer şekilde adlandırılmış GNU araçlarınınkilerle eşleşen komut satırı seçeneklerine ve çıktı biçimine sahiptir.
Tüm durumlarda, komut satırında listelenen her dosya ayrı ayrı işlenir. Komut satırında hiçbir dosya listelenmemişse veya bir dosya adı - olarak verilmişse, girdi bunun yerine stdin üzerinden alınır.
Aynı mesaj özetine sahip iki mesaj üretmenin veya önceden belirtilen hedef mesaj özetine sahip herhangi bir mesaj üretmenin hesaplama açısından imkansız olduğu varsayılmaktadır. SHA-224, SHA-256, SHA-384 ve SHA-512 algoritmaları, RSA gibi bir açık anahtarlı şifreleme sistemi altında özel (gizli) bir anahtarla şifrelenmeden önce büyük bir dosyanın 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 ve benzersiz çıktılar üretmek için bunlara güvenilmemelidir, ayrıca kriptografik bir imza şemasının parçası olarak kullanılmamalıdırlar. 2017-03-02 itibarıyla, her iki algoritmayı da tersine çevirecek, yani belirli bir çıktıyı üreten bir girdi bulacak kamuya açık bilinen bir yöntem yoktur.
Tüm yeni uygulamaların diğer karma (hash) işlevlerinden biri yerine SHA-512 kullanması önerilir.
BSD OPTIONS Program adı “sum” ile bitmeyen bir adla çağrıldığında, yani BSD modunda aşağıdaki seçenekler kullanılabilir:
-c string, --check=string Dosyanın özetini bu dizeyle karşılaştırır. -q veya --quiet seçeneğiyle birleştirilirse, çıkış durumunun ayarlanmasına ek olarak hesaplanan özet भी 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 ve sağlama toplamını (checksum) 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 veya --reverse seçeneğini geçersiz kılar.
-r, --reverse Çıktının 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 Verilen 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 çalıştırır. -sum sürümleri için bu, coreutils ile uyumluluk sağlamak amacıyla etkisiz bir işlemdir (nop).
-x, --self-test Yerleşik bir test betiği çalıştırır.
GNU OPTIONS Program adı “sum” ile biten bir adla çağrıldığında, yani GNU modunda aşağıdaki seçenekler kullanılabilir:
-b, --binary Dosyaları ikili (binary) modda okur.
-c, --check Bağımsız değişken olarak iletilen dosya, klasik BSD biçiminde veya GNU coreutils biçiminde aynı özet algoritması tarafından üretilmiş özet satırlarını içermek zorundadır. Özet dosyasındaki her düzgün biçimlendirilmiş satır için dosya adı ve ardından iki nokta üst üste “:” ile OK veya FAILED yazılır. Varsa, başarısız karşılaştırmaların sayısı ve düzgün biçimlendirilmemiş olması nedeniyle atlanan satırların sayısı en sonda yazdırılır. --quiet seçeneği, özette eşleşmeyen girişler olmadığı sürece çıktıyı susturmak için kullanılabilir.
--help: Bir kullanım mesajı yazdırır ve çıkış yapar.
--ignore-missing Sağlama toplamları doğrulanırken, sağlama toplamları verilen ancak diskte bulunmayan dosyaları yoksayar.
--quiet Sağlama toplamları doğrulanırken, doğrulama başarısız olmadıkça hiçbir şey yazdırmaz.
--status Sağlama toplamları doğrulanırken hiçbir şey yazdırmaz. Çıkış kodu, doğrulamanın başarılı olup olmadığını yansıtacaktır.
--strict Sağlama toplamları doğrulanırken, girdi hatalı biçimlendirilmişse başarısız olur.
--tag: BSD tarzı çıktı üretir.
-t, --text Dosyaları metin (text) modunda okur. Varsayılan davranış budur. Bu uygulamanın ikili ve metin modu arasında ayrım yapmadığını unutmayın.
--version Sürüm bilgilerini yazdırır ve çıkış yapar.
-w, --warn Sağlama toplamları doğrulanırken, hatalı biçimlendirilmiş girdi hakkında uyarır.
-z, --zero Çıktı satırlarını yeni satır karakteri yerine NUL ile sonlandırır.
Exit Status
md5, sha1, sha224, sha256, sha384 ve sha512 araçları başarı durumunda 0, girdi dosyalarından en az biri okunamadığında 1 ve en az bir dosya -c seçeneğiyle aynı karmaya sahip olmadığında 2 ile çıkış yapar.
md5sum, sha1sum, sha224sum, sha256sum, sha384sum ve sha512sum araçları başarı durumunda 0, girdi dosyalarından en az biri okunamadığında veya sağlama toplamları doğrulanırken beklenen sağlama toplamına sahip olmadığında 1 ile çıkış yapar.
Examples
“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 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, GNU modundan elde edilen çıktıya neredeyse tamamen benzer ancak tamamen aynı değildir:
$ md5sum /boot/loader.conf /etc/rc.conf
ada5f60f23af88ff95b8091d6d67bef6 /boot/loader.conf
d80bf36c332dc0fdc479366ec3fa44cd /etc/rc.conf
Karma ve dosya adı arasındaki iki boşluğa dikkat edin. İkili 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 adlı 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 özet geçersiz bir dizeyle (“randomstring”) karşılaştırılır ve bu da bir 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 iletilen bir karma 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 üretilen biçimde herhangi bir sayıda satır içerebilir. Bir karma değeri dosya ile eşleşmiyorsa “OK” yerine “FAILED” yazdırılır.
See Also
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
Acknowledgments
Bu araç, aslen RSA Data Security tarafından ücretsiz genel kullanım için kamu malı (public domain) haline getirilmiş 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 büyük ölçüde genişletilmiştir.
macOS 26.4 February 13, 2024 macOS 26.4