Domanda

mi chiedevo se c'è un affine pitone alla funzione crypt() PHP che esegue in modo simile, generando un sale casuale e incorporare all'interno della stringa salvato.

Ho una tabella di hash di password che sono stati creati utilizzando la stringa chiave $5$ di impostare uno SHA256 basato crittogramma salata. Questi hash avevano qualche ulteriore entropia registrato attaccato a entrambe le estremità ad un intervallo fisso, ma splitting questi caratteri largo della stringa e ottenere l'hash nucleo è banale e non un problema.

Ho guardato la documentazione pitone e non riesce a trovare alcun metodo in hashlib che sembrano utilizzare la stessa sintassi da crypt() di php. È l'approccio utilizzato in PHP (la scissione formato di input con segni di dollaro fra sale, algo e arrotondamenti) unica per la lingua?

Grazie.

Modifica

Sembra che la versione rivista del propria funzione crypt natale di pitone sta per utilizzare procedure simili a quella di PHP. Dalla documentazione 3.3 pre-release:

http://docs.python.org/dev/library/crypt.html

Modifica :

Finalmente trovato Passlib, una libreria che fornisce questa funzionalità in puro python.

http://packages.python.org/passlib/index.html

È stato utile?

Soluzione

Sembra certamente molto simile a di FreeBSD cripta (vedi "cripta modulare" nella pagina di manuale). Non mi ricordo se è lo stesso modo in Linux o altro, ma questo sembra indicare che non è unico nel suo genere.

Non c'è equivalente diretto in Python per quanto ne so, ma non dovrebbe essere troppo difficile da rotolare il proprio poiché gli algoritmi di crittografia stessi dovrebbero essere sostenute in hashlib.

Altri suggerimenti

Mi rendo conto che questa domanda è vecchia, ma ho trovato mentre stavo cercando di implementare un algoritmo di accesso in Python che è stato originariamente scritto in PHP. La funzione cripta PHP utilizza qualsiasi di una manciata di algoritmi DES poco sicuro, comprese bcrypt. Dipende da ciò che si hash la stringa con. Passlib è praticamente la soluzione migliore per replicare la funzionalità dell'applicazione attualmente sta ottenendo da PHP cripta. Prendete una delle vostre password hash, e sguardo alla parte anteriore della stringa. Si dovrebbe vedere qualcosa come $ 2a $, $ 3 $, $ 6 $ (o simile). Si noti che se questa stringa non esiste, è più che probabile usando l'hashing DES standard.

Prendere queste informazioni a questo link:

http://pythonhosted.org/passlib/modular_crypt_format.html#mcf-identifiers

Quindi, abbinare fino a l'algoritmo è necessario implementare in Python. Gli identificatori Scheme sono collegamenti alla documentazione passlib in merito a tale algoritmo di hashing. A questo punto, si dovrebbe avere tutte le informazioni necessarie per completare la reimplementazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top