Saya memiliki kata sandi yang berfungsi dan dapat melihat hash (/ etc / passwd). Bagaimana saya menemukan algoritma hashing yang digunakan untuk hash password, tanpa secara manual mencoba algoritma yang berbeda sampai saya menemukan kecocokan?
11
/etc/passwd
. Saya pikir semua varian Unix / Linux telah berpindah ke/etc/shadow
tahun yang lalu. (Saya tahu sistem seperti itu masih mendukung hash,passwd
tetapi saya tahu tidak ada utilitas yang menempatkannya di sana lagi. Sistem tertanam, mungkin?/etc/passwd
sini. Namun ini tidak mengubah masalah pertanyaan. Melakukannya?/etc/shadow
dan mereka tidak memiliki file dengan nama itu.Jawaban:
Hal ini didokumentasikan dalam
crypt(3)
's manualnya , yang Anda dapat menemukan melaluishadow(5)
‘s manualnya , ataupasswd(5)
's . Tautan tersebut sesuai untuk sistem berbasis Linux modern; deskripsinya ada:Blowfish, juga dikenal sebagai
bcrypt
, juga diidentifikasi oleh prefiks2
,2b
,2x
, dan2y
(lihat dokumentasi PassLib ini ).Jadi, jika kata sandi hash disimpan dalam format di atas, Anda dapat menemukan algoritma yang digunakan dengan melihat id ; jika tidak, itu adalah
crypt
algoritma DES default (dengan hash 13 karakter), ataucrypt
DES "besar" (diperluas untuk mendukung kata sandi 128 karakter, dengan panjang hash hingga 178 karakter), atau BSDI memperpanjang DES (dengan_
awalan diikuti oleh hash 19 karakter).Beberapa distribusi menggunakan libxcrypt yang mendukung dan mendokumentasikan beberapa metode lagi:
y
: yescryptgy
: gost-yescrypt7
: scryptsha1
: sha1cryptmd5
: SunMD5Platform lain mendukung algoritma lain, jadi periksa halaman
crypt
manual di sana. Sebagai contoh, OpenBSDcrypt(3)
hanya mendukung Blowfish, yang diidentifikasi menggunakan id "2b".sumber
.
dan/
. 2 karakter pertama adalah salt dan 11 karakter lainnya adalah nilai hash (semacam). Dan itu adalah satu-satunya algoritma yang didukung olehcrypt
yang sangat lemah sehingga Anda tidak dapat mengimbanginya dengan memilih kata sandi yang lebih kuat.