> openssl passwd -1 "a"
$1$OKgLCmVl$d02jECa4DXn/oXX0R.MoQ/
Ini adalah crypt(3)
gaya Unix yang diperluas sintaks hash kata sandi, khususnya versi MD5-nya.
$1$
pertama mengidentifikasi jenis hash, bagian selanjutnya OKgLCmVl
adalah garam yang digunakan dalam mengenkripsi kata sandi, lalu setelah pemisah $
karakter ke akhir baris adalah hash kata sandi yang sebenarnya.
Jadi, jika Anda mengambil bagian salt dari enkripsi pertama dan menggunakannya dengan enkripsi berikutnya, Anda akan selalu mendapatkan hasil yang sama:
> openssl passwd -1 -salt "OKgLCmVl" "a"
$1$OKgLCmVl$d02jECa4DXn/oXX0R.MoQ/
> openssl passwd -1 -salt "OKgLCmVl" "a"
$1$OKgLCmVl$d02jECa4DXn/oXX0R.MoQ/
Saat Anda mengubah kata sandi , Anda harus selalu beralih ke garam baru. Ini mencegah siapa pun mengetahui setelah fakta apakah kata sandi baru sebenarnya sama dengan yang lama. (Jika Anda ingin mencegah penggunaan ulang kata sandi lama, tentu saja Anda dapat mencirikan kandidat kata sandi baru dua kali:sekali dengan garam lama dan kemudian, jika hasilnya berbeda dari kata sandi lama dan dengan demikian dapat diterima, sekali lagi dengan yang baru garam.)
Jika Anda menggunakan openssl passwd
tanpa opsi, Anda mendapatkan crypt(3)
asli hash -kompatibel, seperti yang dijelaskan oleh dave_thompson_085. Dengan itu, garam adalah dua huruf pertama dari hash:
> openssl passwd "a"
imM.Fa8z1RS.k
> openssl passwd -salt "im" "a"
imM.Fa8z1RS.k
Anda tidak boleh menggunakan gaya hash lama ini dalam implementasi baru, karena gaya hash ini membatasi panjang kata sandi efektif hingga 8 karakter, dan memiliki terlalu sedikit garam untuk melindungi secara memadai dari metode modern.
(Saya pernah menghitung jumlah data yang diperlukan untuk menyimpan satu set lengkap tabel pelangi untuk setiap crypt(3)
klasik hash. Saya tidak ingat hasil pastinya, tetapi dengan asumsi perhitungan saya benar, hasilnya adalah "tumpukan disk multi-terabyte sederhana". Menurut pendapat saya, itu menempatkannya dalam kisaran "penjahat terorganisir bisa melakukannya".)
Tidak seperti hash biasa, sandi hash harus menggunakan 'salt' dan harus lambat (biasanya dengan iterasi) untuk mencegah penyerang yang mendapatkan hash dari pemulihan kata sandi dengan mudah. Lihat kanonis di security.SX dan banyak yang terkait dengannya.
crypt(3) asli tahun 1970-an, sekarang disebut DEScrypt untuk kejelasan, adalah (ringan) asin :
garam adalah string dua karakter yang dipilih dari himpunan [a-zA-Z0-9./]. String ini digunakan untuk mengacaukan algoritme dengan salah satu dari 4096 cara berbeda.
Skema MD5crypt yang sedikit lebih baru diasinkan dan diulang, tetapi tidak memenuhi standar modern. Keduanya dan beberapa skema yang lebih baik yang menggantikannya di Unix dirinci di https://en.wikipedia.org/wiki/Crypt_%28C%29 .
Pengguna muru benar. Kata sandi diasinkan.
Anda dapat menambahkan opsi -salt string
Anda sendiri dan hash tetap sama.
$ openssl passwd -salt "foo" "bar"
foXrpAKGo3142
$ openssl passwd -salt "foo" "bar"
foXrpAKGo3142