Saya tahu string "foobar" menghasilkan hash SHA-256 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
menggunakan
http://hash.online-convert.com/sha256-generator
Namun shell baris perintah:
hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
Menghasilkan hash yang berbeda. Apa yang saya lewatkan?
sha256sum < foobar
. Tidak perlu untuk kucing , gema , printf , ... Lihat juga Penggunaan kucing yang tidak berguna?< foobar
tidak sama denganecho foobar |
. Setara denganecho foobar |
akansha256sum <<< foobar
tetapi menambahkan baris baru untuk foobar sepertiecho
.openssl dgst -sha256 foobar
bekerja untuk saya di MacOS High Sierra, sedangkanecho -n foobar | openssl dgst -sha256
memberikan jawaban yang salah.Jawaban:
echo
biasanya akan menampilkan baris baru, yang ditekan dengan-n
. Coba ini:sumber
echo -n foobar | shasum -a 256
printf
;)alias sha256sum='shasum --algorithm 256'
-
dicetak.Jika sudah diinstal
openssl
, Anda dapat menggunakan:Untuk algoritma lain yang dapat menggantikan
-sha256
dengan-md4
,-md5
,-ripemd160
,-sha
,-sha1
,-sha224
,-sha384
,-sha512
atau-whirlpool
.sumber
Jika perintah sha256sum tidak tersedia (pada Mac OS X v10.9 (Mavericks) misalnya), Anda dapat menggunakan:
echo -n "foobar" | shasum -a 256
sumber
echo -n
berfungsi dan tidak mungkin hilang karena penggunaan historis yang masif, namun per versi terbaru dari standar POSIX , aplikasi yang sesuai baru "didorong untuk digunakanprintf
".sumber
echo
menghasilkan karakter baris baru yang hash juga. Mencoba:sumber
Saya percaya bahwa
echo
menghasilkan baris baru. Coba gunakan-n
sebagai parameter untuk menggema untuk melewati baris baru.sumber