Linux komut satırından SHA-256 karması oluşturma


234

"Foobar" dizesinin http://hash.online-convert.com/sha256-generatorc3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 kullanarak SHA-256 karma oluşturduğunu biliyorum

Ancak komut satırı kabuğu:

hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f  -

Farklı bir karma oluşturur. Neyi kaçırıyorum?


4
sha256sum < foobar. Gerek yok kedi , eko , printf , ... Ayrıca bakınız kedinin Yararsız kullanımını?
koppor

7
@koppor < foobarile aynı değil echo foobar |. Buna eşdeğer echo foobar |olur, sha256sum <<< foobarancak bu, foobar'a olduğu gibi bir satırsonu ekler echo.
mvds

openssl dgst -sha256 foobarMacOS High Sierra'da benim için çalışıyor, echo -n foobar | openssl dgst -sha256yanlış bir cevap verdi.
auspicious99

Yanıtlar:


362

echonormalde, bastırılmış bir yeni satır çıkarır -n. Bunu dene:

echo -n foobar | sha256sum

76
NOT: OS X'te (BSD), buecho -n foobar | shasum -a 256
Olie

6
just use printf;)
dylnmc

11
OSX'te, bir takma ad oluşturmak kullanışlı olabilir:alias sha256sum='shasum --algorithm 256'
Jonathan Cross

1
Neden * - ile bitiyor
Philip Rego

2
@PhilipRego Stdin'deki girdinin şemsiyesi, bu nedenle dosya adı yerine -yazdırılıyor.
mvds

100

Yüklediyseniz şunları opensslkullanabilirsiniz:

echo -n "foobar" | openssl dgst -sha256

Diğer algoritmalar için, yerine -sha256ile -md4, -md5, -ripemd160, -sha, -sha1, -sha224, -sha384, -sha512veya -whirlpool.


Sha512'de istediğiniz tur sayısını belirtmenin bir yolu var mı? Baktım ve bulamadım ve biliyor muydun?
f1lt3r

1
@AlistairMacDonald - Tam olarak ne aradığını bilmiyorum. AFAIK, SHA512'nin 80 mermiye ihtiyacı var; İşlevi değiştirmek istiyorsanız, artık sha512 olmayacak. BTW, sorunuzu crypto.stackexchange.com adresinde arayabilir / sorabilirsiniz .
Farahmand

3
Kabul edilen cevabın aksine, bu MacOS için çalışır.
weefwefwqg3

45

Sha256sum komutu kullanılamıyorsa ( örneğin Mac OS X v10.9'da (Mavericks)) şunları kullanabilirsiniz:

echo -n "foobar" | shasum -a 256


1
Güzel! Bunu benim .bash_profile işlevi sha256 () {echo -n "$ *" | shasum -a 256} ve şu şekilde arayın: ~ $ sha256 foobar
rbento

Kabul edilen cevabın aksine, bu MacOS için çalışır
weefwefwqg3

Yoksa Ubuntu 10.10 (Maverick Meerkat) mı demek istediniz ? (hayır, Maverick ). 2010 yılında piyasaya sürülürken, Mac OS X v10.9 bu yanıttan bir ay önce yayınlandı.
Peter Mortensen



7

Bence echosondaki satırsonu çıktı. Yeni -nsatırı atlamak için yankı olarak parametre olarak kullanmayı deneyin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.