Saya sudah lama bertanya-tanya, mengapa menjalankan "echo 'helloworld' | openssl passwd -1 -stdin" menghasilkan hasil yang berbeda setiap kali? Jika saya menaruh hash di / etc / shadow saya dapat menggunakannya sebagai kata sandi dan masuk ke sistem saya, bagaimana cara kerjanya?
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$xlm86SKN$vzF1zs3vfjC9zRVI15zFl1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$/0.20NIp$pd4X9xTZ6sF8ExEGqAXb9/
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$sZ65uxPA$pENwlL.5a.RNVZITN/zNJ1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$zBFQ0d3Z$SibkYmuJvbmm8O8cNeGMx1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$PfDyDWER$tWaoTYym8zy38P2ElwoBe/
Saya akan berpikir bahwa karena saya menggunakan hash ini untuk menggambarkan ke sistem apa kata sandi saya seharusnya, saya harus mendapatkan hasil yang sama setiap kali. Kenapa tidak?
Jawaban:
Mereka semua memiliki garam yang berbeda . Garam unik dipilih setiap kali, karena garam tidak boleh digunakan kembali. Menggunakan garam unik untuk setiap kata sandi membuatnya tahan terhadap serangan tabel pelangi .
sumber
Memang jika Anda memberikan garam ke baris perintah Anda selalu mendapatkan hasil yang sama.
sumber