Pertanyaan Bagaimana cara mendapatkan hash MD5 string langsung di terminal?


Bagaimana cara mendapatkan MD5 hash string langsung dari terminal?

Misalnya, saya ingin string abcdefg hash. Saat ini md5sum perintah hanya menerima nama file sebagai input. Saya hanya ingin memasukkan baris berikut dan semuanya dilakukan.

md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f

Bagaimana saya bisa mencapai itu?


151
2017-07-20 11:08


asal


md5 -s abcdefg - raitisd


Jawaban:


Anda juga bisa mengatakan sesuatu seperti ini:

~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4  -

Ini pada dasarnya melakukan hal yang sama seperti yang dijelaskan oleh @enzotib, tetapi mungkin sedikit lebih sederhana.


198
2017-07-20 11:47



Anda juga ingin memperbarui hasil contoh, seperti 7803ffca ... adalah hasilnya dengan baris baru yang ditambahkan. Hasil yang benar untuk perintah di atas adalah 83218ac34c1834c26781fe4bde918ee4 - - Xanthir
mengapa ada spasi dan tanda hubung di bagian akhir? - keune
Harap perbaiki saya jika saya salah, tapi saya rasa ini karena MD5sum diterapkan pada aliran data, bukan membaca konten file, yang memiliki nama yang terkait dengannya. - jfmessier
Perhatikan bahwa -n adalah wajib. Tanpa itu, hash Anda akan benar-benar salah karena menyertakan karakter baris baru. - Pithikos
Ini membantu saya di macOS juga, meskipun itu sedikit berbeda: echo -n Welcome | md5 - Edward J. Stembler


Sangat sederhana, ia menerima stdin, jadi

md5sum <<<"my string"

Untuk menghindari baris baru tambahan yang ditambahkan oleh shell:

printf '%s' "my string" | md5sum

58
2017-07-20 11:10



Memberikan @messier dan @enzotib suara; keduanya jatuh dalam kategori "kesederhanaan" saya yang berharga. Saya akan cenderung menggunakan <<<" pipa dalam skrip; echo string menang untuk commandline. Sudah selesai dilakukan dengan baik. - Tom
+1 untuk digunakan printfbenar. Jika Anda ingin memiliki jumlah tanpa -, taruh | cut -d ' ' -f 1. Contoh penggunaan: sum=$(printf '%s' 'some string' | md5sum | cut -d ' ' -f 1) - Lekensteyn
itu aneh tapi <<< operator dan printf fungsi memberikan hasil yang sama sekali berbeda untuk md5 hash! hasil printf benar! - Hamed Momeni
tampaknya menggunakan <<< operator mengirim baris baru ke md5sum! - Hamed Momeni
Ya, memang, seperti yang saya katakan antara contoh pertama dan kedua - enzotib


$ echo -n 123456 | md5sum | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e

Anda dapat membuat skrip shell.

Misalnya, nama skrip adalah md5.sh:

#!/bin/bash

echo   -n   $1 | md5sum | awk '{print $1}'

izin dieksekusi:

 chmod +x md5.sh

Kemudian:

$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e

Jika sistem Anda macOS. Anda perlu memodifikasi skrip ini:

$ echo -n 123456 | md5 | awk '{print $1}' 
e10adc3949ba59abbe56e057f20f883e

21
2018-03-09 04:54



Ini terlalu lama. - Gucho Ca
alternatif untuk awk: cut -d ' ' -f 1 - Blauhirn


Menjalankan md5sum tanpa argumen sama sekali akan menyebabkannya membaca input dari terminal. Ketik atau tempelkan apa pun yang Anda inginkan, dan setelah selesai, tekan ctrl-d untuk mengakhiri input.


9
2017-07-27 15:46



ya, kamu benar juga. tapi ctrl+d perlu ditekan dua kali agar berfungsi. - Hamed Momeni
@James, jika tidak mengikuti baris baru, ya. Jika Anda menekannya setelah menekan enter, itu hanya perlu sekali. Ketika tidak mengikuti baris baru, itu hanya memaksa semua karakter yang diketik pada baris sejauh ini untuk diproses segera daripada menunggu baris baru. - psusi


openssl md5 filename
openssl sha1 filename

Untuk string pipe konten menggunakan echo

echo -n 123456 | openssl md5

8
2017-12-10 11:13





Poke cepat saya di --help untuk md5sum menunjukkan bahwa perintah:

md5sum -

kemudian akan memberikan prompt untuk input sederhana. Memasukkan beberapa teks dan kemudian menggunakan Memasukkan lalu Ctrl+D untuk menandakan akhir file kemudian menyebabkan md5sum untuk memuntahkan MD5 dari teks mentah yang Anda masukkan (termasuk itu Memasukkan, itu CR, IIRC).

Kurang mengetik dan tidak ada perpipaan! Dan menghindari kata sandi plaintext Anda dicatat dalam sejarah shell! Merayu!

Jika Anda tidak ingin bahwa trailing CR (yang biasanya terjadi jika Anda ingin hash kata sandi), jangan dipukul Memasukkan sebelum Ctrl+D, masukkan Ctrl+D dua kali sebagai gantinya.


3
2017-08-21 06:00





Dalam skrip saya, saya menemukan bahwa ada 2 hal yang perlu Anda ketahui tentang masalah ini.

  • Tidak masalah jika Anda melakukannya echo "$myvariable" atau echo -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 ruang tambahan dan tanda hubung seperti yang ditunjukkan pada contoh:

    $ echo -n Welcome | md5sum
    7803ffcaea43bb81a439fde13b29bc35  -
    

untuk menyingkirkan itu dan tetap hanya dengan kode 7803ffcaea43bb81a439fde13b29bc35, melakukan: echo "$myvariable" | md5sum | cut -d" " -f1


2
2017-08-02 13:39



Jangan lupakan itu -n parameter di sini untuk menghindari keluaran trailing newline, yang akan menyebabkan md5 salah: echo -n $myvariable | md5sum | cut -d" " -f1 - derFunk