GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Menemukan Algoritma Hashing yang Digunakan Untuk Kata Sandi Hash?

Saya memiliki kata sandi yang berfungsi dan dapat melihat hash (/etc/passwd). Bagaimana cara menemukan algoritme hashing yang digunakan untuk hash kata sandi, tanpa mencoba algoritme yang berbeda secara manual hingga saya menemukan kecocokan?

Jawaban yang Diterima:

Ini didokumentasikan di crypt(3) halaman manual, yang dapat Anda temukan melalui shadow(5) halaman manual, atau passwd(5) 's. Tautan tersebut sesuai untuk sistem berbasis Linux modern; deskripsinya ada :

Jika garam adalah string karakter yang dimulai dengan karakter “$id $”
diikuti string opsional diakhiri dengan “$”, maka hasilnya
berbentuk:

$id$salt$encrypted

id mengidentifikasi metode enkripsi yang digunakan sebagai ganti DES dan ini kemudian
menentukan bagaimana string sandi lainnya diinterpretasikan.
Nilai id berikut didukung:

ID  | Method
─────────────────────────────────────────────────────────
1   | MD5
2a  | Blowfish (not in mainline glibc; added in some
    | Linux distributions)
5   | SHA-256 (since glibc 2.7)
6   | SHA-512 (since glibc 2.7)

Blowfish, juga dikenal sebagai bcrypt , juga diidentifikasi dengan awalan 2 , 2b , 2x , dan 2y (lihat dokumentasi PassLib).

Jadi jika kata sandi hash disimpan dalam format di atas, Anda dapat menemukan algoritme yang digunakan dengan melihat id; jika tidak, itu adalah crypt algoritme DES default (dengan hash 13 karakter), atau crypt "besar" DES (diperpanjang untuk mendukung sandi 128 karakter, dengan hash hingga panjang 178 karakter), atau DES diperpanjang BSDI (dengan _ awalan diikuti dengan hash 19 karakter).

Beberapa distribusi menggunakan libxcrypt yang mendukung dan mendokumentasikan beberapa metode lainnya:

  • y :yescrypt
  • gy :gost-yescrypt
  • 7 :enkripsi
  • sha1 :sha1crypt
  • md5 :SunMD5

Platform lain mendukung algoritme lain, jadi periksa crypt halaman manual di sana. Misalnya, crypt(3) dari OpenBSD hanya mendukung Blowfish, yang diidentifikasi menggunakan id “2b”.


Linux
  1. Cara Mengetahui Apakah Disk Adalah SSD Atau HDD Di Linux

  2. Linux:Bagaimana Menemukan Driver Perangkat yang Digunakan Untuk Perangkat?

  3. Algoritma Hash Apa yang Digunakan Untuk Kata Sandi yang Disimpan Dalam Bayangan Di 11.10?

  1. Cara mengaudit izin dengan perintah find

  2. Cara Menggunakan Perintah find Linux untuk Menemukan File

  3. Bagaimana menemukan pengelola file default?

  1. CentOS / RHEL :Cara mengubah algoritma hashing kata sandi

  2. Bagaimana menemukan semua file yang jarang di Linux

  3. Bagaimana cara menemukan lokasi yang dapat dieksekusi di C?