Porting hashs von php's crypt () zu python

Ich frage mich, ob es eine Python-Cognate zu PHP's crypt() -Funktion, die in ähnlicher Weise, die Erzeugung eines zufälligen Salzes und Einbettung es in die gespeicherte Zeichenfolge.

Ich habe eine Tabelle mit Hash-Passwörtern, die mit dem $5$ String-Schlüssel erstellt wurden, um ein SHA256 basiertes gesalzenes Kryptogramm einzurichten. Diese Hashes hatten einige zusätzliche aufgezeichnete Entropie an beiden Enden in einem festen Intervall befestigt, aber die Aufteilung dieser Zeichen aus der Saite und immer die Kern Hash ist trivial und kein Problem überhaupt.

Ich habe mir die Python-Dokumentation angesehen und kann keine Methoden in hashlib , die die gleiche Syntax von php's crypt() . Ist der Ansatz in PHP verwendet (das Eingabeformat aufgeteilt mit Dollarzeichen zwischen Salz, Algo und Runden) einzigartig für die Sprache?

Vielen Dank.

BEARBEITEN:

Es sieht so aus, als ob die überarbeitete Version von Python's eigene native crypt Funktion wird, um Verfahren ähnlich wie die von PHP zu nutzen. Aus der 3.3 Vorabversion:

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

EDIT :

Schließlich fand Passlib, eine Bibliothek, die diese Funktionalität in reiner Python bietet.

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

2 Solutions collect form web for “Porting hashs von php's crypt () zu python”

Es sieht sicherlich sehr ähnlich zu FreeBSDs Krypta (siehe "modulare Krypta" in der Manpage). Ich weiß nicht wirklich, ob es die gleiche Weise in Linux oder anderen ist, aber das scheint zu zeigen, dass es nicht einzigartig ist.

Es gibt kein direktes Äquivalent in Python so weit ich weiß, aber es sollte nicht zu schwer sein, um Ihre eigenen zu rollen, da die Verschlüsselungsalgorithmen selbst in hashlib unterstützt werden hashlib .

Ich weiß, dass diese Frage alt ist, aber ich habe es gefunden, während ich versuchte, einen Login-Algorithmus in Python zu implementieren, der ursprünglich in PHP geschrieben wurde. Die Crypt-Funktion in PHP verwendet eine Handvoll von etwas unsicheren DES-Algorithmen, einschließlich bcrypt. Es hängt davon ab, was Sie hash Ihre Saite mit. Passlib ist so ziemlich Ihre beste Wette für die Replikation der Funktionalität Ihre Anwendung wird derzeit von PHP Krypta. Nehmen Sie eines Ihrer Hash-Passwörter und schauen Sie sich die Vorderseite der Saite an. Sie sollten so etwas wie $ 2a $, $ 3 $, $ 6 $ (oder ähnlich) sehen. Beachten Sie, dass, wenn diese Zeichenfolge nicht existiert, Sie mehr als wahrscheinlich mit Standard-DES-Hashing sind.

Nimm diese Infos zu diesem Link:

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

Dann passen Sie es auf den Algorithmus, den Sie in Python implementieren müssen. Die Scheme-Identifikatoren sind Links zu der Passlib-Dokumentation zu diesem Hash-Algorithmus. An diesem Punkt sollten Sie alle Informationen haben, die Sie benötigen, um Ihre Reimplementierung abzuschließen.

  • Was verwende ich als SMTP
  • Python-Skript von PHP ausführen
  • Implementierung von Python-Slice-Notation
  • HMAC-Wert nicht konsistent in Python und PHP
  • PHP-Äquivalent für einen Python-Dekorator?
  • Java und pythonäquivalent von php's foreach ($ array als $ key => $ value)
  • Google App Engine PHP plötzlich gestoppt läuft apps lokal
  • Schieben von Daten auf Web-Browser bei der Verarbeitung von Input von ffmpeg
  • Calling Python von PHP scheitert, wenn Import numpy
  • PHP oder Python für Bildverarbeitung?
  • RPC-Frameworks verfügbar?
  • Python ist die beste Programmiersprache der Welt.