Il modo più semplice di hashing di una password con più algoritmi hash diversi [chiuso]

0

Ho una lista di password plaintext che vorrei hash con vari algoritmi hash (a scopo didattico). Come minimo desidererei ottenere hash sotto MD5, SHA1, SHA256, (con e senza sali), bcrypt, PBKDF2 e NTLM. Poiché hashcat supporta tutti questi elementi, ho pensato che l'approccio più semplice fosse eseguire hashcat sulle password con tutti i diversi algoritmi .

Tuttavia, con mio stupore (e frustrazione), non sono stato in grado di trovare un modo semplice per farlo in hashcat ! Poiché hashcat è mirato a rompere le password già sottoposte a hash, richiede un elenco di hash, non plaintext .

Quindi, c'è un modo di eseguire semplicemente ogni algoritmo in hashcat su una password in chiaro - per ottenere il suo valore hash?

Nota: non mi interessa se è hashcat che uso o meno, sto solo cercando un modo semplice per cancellare alcune password con vari algoritmi hash - minimizzando la quantità script devo fare me stesso. Quindi se hai uno strumento o un approccio migliore, per favore condividilo.

    
posta hakoja 08.08.2014 - 16:04
fonte

2 risposte

2

Sulla maggior parte dei sistemi operativi UNIXoid, dovrebbe essere disponibile il programma della riga di comando openssl . Attua la maggior parte degli hash che hai citato. Per utilizzarlo solo per l'hashing, inserisci l'output di echo -n in openssl dgst -[ALGORITHM] . Ad esempio, per calcolare l'hashsum SHA1 di "Hello World", utilizzare questo:

 echo -n "Hello World" | openssl dgst -sha1

openssl dgst supporta i seguenti algoritmi: md5, md4, md2, sha1, sha, mdc2, ripemd160.

    
risposta data 08.08.2014 - 16:29
fonte
1

Python ha una libreria chiamata passlib che contiene tutti questi algoritmi. Compreso NTLM che è suddiviso in nthash e lmhash . Potresti creare una serie di schemi:

schemes = ["md5_crypt", ...]

Quindi imposta un contesto di criptazione con quell'elenco:

pwd_context = CryptContext(schemes=["md5_crypt", "des_crypt"])

Esegui il looping di len(schemes) chiamando:

hash = pwd_context.encrypt("passwordtohash", scheme=schemes[i])

Modifica Non sembra essere così semplice. Sto cercando una volta che avrò una sceneggiatura funzionante che pubblicherò.

Esempio di utilizzo
Aggiungi Salt Usando encrypt () Scarica PassLib

    
risposta data 08.08.2014 - 16:35
fonte

Leggi altre domande sui tag