GNU/Linux >> Belajar Linux >  >> Linux

Nilai hash MD5 berbeda dari Bash dan PHP

Jawaban @Cyrus tepat dengan cara menyelesaikan ini - untuk menjelaskan, saat menggunakan echo itu akan menampilkan baris baru di akhir string. Seperti yang Anda lihat pada output online ini, hello dengan keluaran baris baru persis seperti MD5 yang Anda dapatkan sebelumnya. Menggunakan -n menekan baris baru, dan kemudian akan memberi Anda hasil yang Anda harapkan.

Edit :

Anda dapat melihatnya dengan jelas jika Anda menampilkannya ke hexdump , yang menunjukkan heksadesimal byte di sana.

$ echo "str_example" | hd
00000000  73 74 72 5f 65 78 61 6d  70 6c 65 0a              |str_example.|

Lihat 0a (\n ) di akhir string

$ echo -n "str_example" | hd
00000000  73 74 72 5f 65 78 61 6d  70 6c 65                 |str_example|

Dengan -n echo tidak menempatkan baris baru (\n ) pada akhirnya

Sekarang dengan string kosong

$ echo  "" | hd
00000000  0a                                                |.|

Hanya karakter Baris Baru

$ echo -n  "" | hd

String kosong, jadi hexdump tidak menunjukkan keluaran


Secara default, echo termasuk karakter baris baru di akhir output. Namun, PHP dan situs online yang Anda gunakan tidak menyertakan baris baru. Untuk menekan karakter baris baru, gunakan -n bendera:

echo -n "hello" | md5sum

Keluaran:

5d41402abc4b2a76b9719d911017c592  -

Lihat:help echo

atau dengan printf:

printf "%s" "hello" | md5sum

Linux
  1. Menghasilkan hash SHA-256 dari baris perintah Linux

  2. Memulihkan stdout dan stderr ke nilai default

  3. Bagaimana saya bisa mendapatkan nomor terakhir dari string di bash?

  1. Apa Perbedaan Antara $(stuff) dan `stuff`?

  2. Bash Script Untuk Menghapus File Terlama Dari Folder A?

  3. Bash + Bagaimana Cara Keluar Dari Skrip Sekunder Dan Dari Skrip Utama Pada Kedua Kalinya?

  1. Tujuan Kata Kunci "lakukan" Di Bash For Loops?

  2. Cetak Garis Pencocokan Dan Garis Ke-N Dari Garis Yang Cocok?

  3. Jalankan skrip Perl/PHP dari baris perintah