Bagaimana cara mendapatkan hash string MD5 langsung dari terminal?
Sebagai contoh, saya ingin string di- abcdefg
hash. Saat ini perintah md5sum hanya menerima nama file sebagai input. Saya hanya ingin memasukkan baris berikut dan semuanya dilakukan.
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
Bagaimana saya bisa mencapainya?
command-line
md5sum
Hamed Momeni
sumber
sumber
md5 -s abcdefg
Jawaban:
Anda juga dapat mengatakan sesuatu seperti ini:
Ini pada dasarnya melakukan hal yang sama seperti yang dijelaskan oleh @enzotib, tetapi mungkin sedikit lebih sederhana.
sumber
83218ac34c1834c26781fe4bde918ee4 -
-n
ini wajib. Tanpanya, hash Anda akan sepenuhnya salah karena menyertakan karakter baris baru.-
pada akhirnya. @jfmessierSangat sederhana, ia menerima stdin, jadi
Untuk menghindari baris baru yang ditambahkan oleh shell:
sumber
<<<"
pipa dalam skrip;echo string
menang untuk commandline. Sudah selesai dilakukan dengan baik.printf
dengan benar. Jika Anda ingin memiliki jumlah tanpa-
, masukkan| cut -d ' ' -f 1
. Contoh penggunaan:sum=$(printf '%s' 'some string' | md5sum | cut -d ' ' -f 1)
<<<
operator danprintf
fungsinya memberikan hasil yang sama sekali berbeda untuk hash md5! hasil printf sudah benar!<<<
operator mengirimkan baris baru ke md5sum!Anda dapat membuat skrip shell.
Misalnya, nama skrip adalah md5.sh:
mengeksekusi izin:
Kemudian:
Jika sistem Anda macOS. Anda perlu memodifikasi skrip ini:
sumber
cut -d ' ' -f 1
md5() { echo -n $1 | md5sum | awk '{print $1}'; }
dalam .bashrc dan kemudian saya bisa gunakan$ md5 test
di baris perintah. terima kasih atas jawabannyaawk
Perintah lebih pendek :'$0=$1'
Menjalankan md5sum tanpa argumen sama sekali akan menyebabkannya membaca input dari terminal. Ketik atau rekatkan apa pun yang Anda inginkan, dan setelah selesai, tekan
ctrl-d
untuk mengakhiri input.sumber
ctrl+d
perlu ditekan dua kali agar bisa bekerja.Untuk string pipe konten menggunakan echo
sumber
Poke cepat saya di
--help
untukmd5sum
menunjukkan bahwa perintah:kemudian akan memberikan prompt untuk input sederhana. Memasukkan beberapa teks dan kemudian menggunakan Enterdan kemudian Ctrl+ Duntuk menandakan akhir file kemudian menyebabkan
md5sum
untuk memuntahkan MD5 dari teks mentah yang Anda masukkan (termasuk itu Enter, itu adalah CR, IIRC).Lebih sedikit untuk mengetik dan tanpa perpipaan! Dan menghindari kata sandi plaintext Anda direkam dalam riwayat shell! Merayu!
Jika Anda tidak ingin trailing CR itu (yang biasanya terjadi jika Anda ingin kata sandi hash), jangan tekan Entersebelum Ctrl+ D, masukkan Ctrl+ Ddua kali sebagai gantinya.
sumber
Dalam skrip saya, saya menemukan bahwa ada 2 hal yang harus Anda ketahui tentang masalah ini.
echo "$myvariable"
atauecho -n "$myvariable"
tetapi Anda harus selalu menggunakan doubleqoutes untuk string dan selalu menggunakan metode yang sama. jika tidak semuanya tidak akan cocok.dalam output Anda selalu mendapatkan spasi tambahan dan tanda hubung seperti yang ditunjukkan pada contoh:
untuk menghilangkannya dan tetap hanya dengan kode
7803ffcaea43bb81a439fde13b29bc35
, lakukan:echo "$myvariable" | md5sum | cut -d" " -f1
sumber
-n
parameter di sini untuk menghindari keluaran baris baru, yang akan mengarah ke md5 yang salah:echo -n $myvariable | md5sum | cut -d" " -f1
Ada banyak contoh untuk melakukan ini, tetapi beberapa di antaranya tidak setara karena beberapa dari mereka secara eksplisit atau implisit menyertakan baris baru, dan beberapa lainnya tidak.
Saya ingin secara jelas menentukan metode populer mana yang termasuk baris baru dan mana yang tidak.
Berikut adalah beberapa contoh untuk menghitung hash md5 TANPA trailing newline (CORRECT):
Menggunakan file dengan teks:
Catatan:
-n
dalamecho
berarti: "jangan tampilkan baris baru".Menggunakan
echo
dengan-n
inline:Menggunakan
printf
:Hanya menggunakan
md5sum
perintah:(Mari kita menulis
md5sum
, tekan Enterlalu tulis stringtest
dan kemudian tekan kombinasi ganda Ctrl+ d)Menggunakan
md5sum -
perintah:(Mari kita menulis
md5sum -
, tekan Enterlalu tulis stringtest
dan kemudian tekan kombinasi ganda Ctrl+ d)Berikut adalah beberapa contoh untuk menghitung hash md5 DENGAN trailing newline (JADI TIDAK BENAR):
Menggunakan file dengan teks:
Menggunakan
echo
TANPA-n
sebaris:Menggunakan string di sini :
Hanya menggunakan
md5sum
perintah tetapi dengan Enterkunci setelah menulis teks:(Mari kita menulis
md5sum
, tekan Enterlalu tulis stringtest
dan kemudian tekan agaien Enterdan sekali kombinasi Ctrl+ d)Menggunakan
md5sum -
perintah tetapi dengan Enterkunci setelah menulis teks:(Mari kita menulis
md5sum -
, tekan Enterlalu tulis stringtest
dan kemudian tekan agaien Enterdan sekali kombinasi Ctrl+ d)sumber