GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare l'algoritmo di hashing utilizzato per eseguire l'hashing delle password?

Ho la password di lavoro e posso vedere l'hash (/etc/passwd). Come faccio a trovare l'algoritmo di hashing utilizzato per eseguire l'hashing della password, senza provare manualmente algoritmi diversi finché non trovo una corrispondenza?

Risposta accettata:

Questo è documentato in crypt(3) manpage di , che puoi trovare tramite shadow(5) manpage o passwd(5) 'S. Questi collegamenti sono appropriati per i moderni sistemi basati su Linux; la descrizione c'è:

Se sale è una stringa di caratteri che inizia con i caratteri “$id $”
seguito da una stringa eventualmente terminata da “$”, quindi il risultato
ha la forma:

$id$salt$encrypted

id identifica il metodo di crittografia utilizzato al posto di DES e questo quindi
determina come viene interpretato il resto della stringa della password. Sono supportati i
seguenti valori di id:

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, noto anche come bcrypt , è anche identificato dai prefissi 2 , 2b , 2x e 2y (vedi documentazione di PassLib).

Quindi, se una password con hash è memorizzata nel formato sopra, puoi trovare l'algoritmo utilizzato guardando l'id; altrimenti è crypt algoritmo DES predefinito (con un hash di 13 caratteri) o "big" crypt DES (esteso per supportare password di 128 caratteri, con hash fino a 178 caratteri di lunghezza) o DES esteso BSDI (con un _ prefisso seguito da un hash di 19 caratteri).

Alcune distribuzioni usano libxcrypt che supporta e documenta molti altri metodi:

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

Altre piattaforme supportano altri algoritmi, quindi controlla crypt manpage lì. Ad esempio, crypt(3) di OpenBSD supporta solo Blowfish, che identifica utilizzando l'id “2b”.


Linux
  1. Come controllare i permessi con il comando trova

  2. Quale algoritmo hash viene utilizzato per le password archiviate in ombra in 11.10?

  3. Come utilizzare il comando trova di Linux per trovare i file

  4. Come trovo la posizione dell'eseguibile in C?

  5. Come trovo la dimensione massima dello stack?

Come trovare il numero di porta di un servizio in Linux

Come trovare l'indirizzo IP di una macchina virtuale KVM

Come trovare la dimensione totale di una directory in Linux

Come trovare file con il comando fd in Linux

Come trovare l'elenco dei repository installati in Linux

Come trovo la posizione MySQL my.cnf