man/data_processing
man · Veri İşleme

$ sha224

Bölüm 1 · Veri İşleme

bir dosya için mesaj özeti parmak izi (sağlama toplamı) hesaplar

Sözdizimi

     md5 [-pqrtx] [-c dize] [-s dize] [dosya ...]

     md5sum [-bctwz] [--binary] [--check] [--help] [--ignore-missing] [--quiet] [--status]
	    [--strict] [--tag] [--text] [--version] [--warn] [--zero] [dosya ...]

	    (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] [dosya ...]

Açıklama

md5, sha1, sha224, sha256, sha384 ve sha512 yardımcı programları, girdi olarak rastgele uzunlukta bir mesaj alır ve çıktı olarak girdinin bir "parmak izini" veya "mesaj özetini" üretir.

md5sum, sha1sum, sha224sum, sha256sum, sha384sum ve sha512sum yardımcı programları da aynısını yapar, ancak komut satırı seçenekleri ve çıktı biçimleri benzer adlı GNU yardımcı programlarınınkilerle eşleşir.

Her durumda, 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 standart girdiden (stdin) alınır.

Aynı mesaj özetine sahip iki farklı mesaj üretmenin veya önceden belirlenmiş belirli bir 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ı, 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 saldırılarına karşı savunmasız olduğu kanıtlanmıştır; bu nedenle benzersiz çıktılar üretmelerine güvenilmemeli ve kriptografik bir imza şemasının parçası olarak kullanılmamalıdırlar. 2017-03-02 tarihi itibarıyla, iki algoritmadan birini de tersine çevirmek, yani belirli bir çıktıyı üreten bir girdi bulmak için kamuoyu tarafından bilinen bir yöntem yoktur.

Tüm yeni uygulamaların, diğer karma 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 dize, --check=dize 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 de yazdırılır. (Birden fazla dosya belirtilmişse bu seçeneğin henüz kullanışlı olmadığını unutmayın.)

-p, --passthrough Standart girdiyi (stdin) standart çıktıya (stdout) yansıtır ve sağlama toplamını standart çıktıya (stdout) ekler. Bu modda, komut satırında belirtilen tüm dosyalar sessizce yok sayı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 (diff) için yardımcı olur. -ptx seçenekleriyle birleştirildiğinde hiçbir şey yapmaz.

-s dize, --string=dize Verilen dizenin sağlama toplamını yazdırır. Bu modda, komut satırında belirtilen tüm dosyalar sessizce yok sayılır.

-t, --time-trial Yerleşik bir zaman testi çalıştırır. -sum sürümleri için bu, coreutils ile uyumluluk adına boş bir işlemdir (nop).

-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 geçirilen 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 her düzgün biçimlendirilmiş satır için dosya adı, ardından iki nokta üst üste ":" ve ardından OK veya FAILED içeren bir satır yazılır. Varsa, başarısız karşılaştırmaların sayısı ve düzgün biçimlendirilmedikleri 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ı sessize almak 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ı verilmiş olan ancak diskte bulunmayan dosyaları yok sayar.

--quiet Sağlama toplamlarını doğrularken, doğrulama başarısız olmadığı sürece hiçbir şey yazdırmaz.

--status Sağlama toplamlarını doğrularken kesinlikle 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 modunda okur. Varsayılan budur. Bu uygulamanın ikili (binary) mod ile metin modu arasında ayrım yapmadığını unutmayın.

--version Sürüm bilgisini yazdırır ve çıkar.

-w, --warn Sağlama toplamlarını doğrularken, hatalı biçimlendirilmiş girdiler 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ığında 1 ve en az bir dosya -c seçeneğiyle aynı karmaya sahip olmadığında 2 değeriyle çıkar.

md5sum, sha1sum, sha224sum, sha256sum, sha384sum ve sha512sum yardımcı programları başarı durumunda 0 ve girdi dosyalarından en az biri okunamadığında veya sağlama toplamları doğrulanırken beklenen sağlama toplamına sahip olmadığında 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, GNU modundan alınan çıktı ile neredeyse aynıdır ancak tamamen özdeş değildir:

	   $ md5sum /boot/loader.conf /etc/rc.conf
	   ada5f60f23af88ff95b8091d6d67bef6  /boot/loader.conf
	   d80bf36c332dc0fdc479366ec3fa44cd  /etc/rc.conf

     Karma (hash) ile dosya adı arasındaki iki boşluğa dikkat edin. İkili (binary) mod talep edilirse, bunlar bunun yerine bir boşluk ve bir yıldız işareti ile ayrılır:

	   $ 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 ö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 geçirilen bir karma dizesiyle karşılaştırma yapmaz. Bunun yerine, yukarıdaki örnekte /boot/loader.conf için digest adı altında oluşturulana benzer 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 dosyayla 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

Bu yardımcı program, RSA Data Security tarafından ücretsiz genel kullanım için kamu malı 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.