Frage

Ich habe mich gefragt, ob es einen Python gibt, der mit PHP verwandt ist crypt() Funktion, die auf ähnliche Weise ausgeführt wird, ein zufälliges Salz erzeugt und in die gespeicherte Zeichenfolge einbettet.

Ich habe eine Tabelle mit Hash -Passwörtern, die mit dem erstellt wurden $5$ String -Schlüssel zum Einrichten eines sha256 -basierten gesalzenen Kryptogramms. Diese Hashes hatten in einem festen Intervall eine zusätzliche aufgezeichnete Entropie an beiden Enden, aber es ist trivial und überhaupt kein Problem, diese Zeichen von der Zeichenfolge zu trennen und den Kernhash zu erhalten.

Ich habe mir die Python -Dokumentation angesehen und keine Methoden finden hashlib Das scheint die gleiche Syntax von PHP zu verwenden crypt(). Wird der in PHP verwendete Ansatz (das Eingangsformat mit Dollarzeichen zwischen Salz, Algo und Runden) einzigartig für die Sprache verwendet?

Vielen Dank.

BEARBEITEN:

Es sieht so aus, als ob die überarbeitete Version von Pythons eigenem Eingeborenen crypt Funktion wird Verfahren ähnlich der von PHP verwenden. Aus der Dokumentation vor der Veröffentlichung von 3.3:

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

BEARBEITEN:

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

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

War es hilfreich?

Lösung

Es sieht sicherlich sehr ähnlich wie Freebsds Krypta (Siehe "Modulare Krypta" in der Manpage). Ich erinnere mich nicht wirklich, ob es unter Linux oder anderen genauso ist, aber dies scheint darauf hinzudeuten, dass es nicht einzigartig ist.

Soweit ich weiß, gibt es in Python kein direktes Äquivalent hashlib.

Andere Tipps

Mir ist klar, dass diese Frage alt ist, aber ich fand sie, als ich versuchte, einen Anmeldesalithmus in Python implementieren zu können, der ursprünglich in PHP geschrieben wurde. Die Krypta -Funktion in PHP verwendet eine Handvoll etwas unsicherer des Algorithmen, einschließlich Bcrypt. Es hängt davon ab, mit was Sie Ihre Zeichenfolge haben. Passlib ist so ziemlich die beste Wahl, um die Funktionalität zu replizieren, die Ihre Anwendung derzeit von PHP Crypt erhält. Nehmen Sie eines Ihrer Hashed -Passwörter und schauen Sie sich die Vorderseite der Zeichenfolge an. Sie sollten ungefähr 2 $ AA $, $ 3 $, $ 6 $ (oder ähnliches) sehen. Beachten Sie, dass Sie, wenn diese Zeichenfolge nicht vorhanden ist, höchstwahrscheinlich Standard des Hashings verwenden.

Nehmen Sie diese Informationen zu diesem Link auf:

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

Passen Sie es dann mit dem Algorithmus an, den Sie in Python implementieren müssen. Die Schema -Identifikatoren sind Links zu der Passlib -Dokumentation zu diesem Hashing -Algorithmus. An diesem Punkt sollten Sie alle Informationen haben, die Sie benötigen, um Ihre Neuauflagen abzuschließen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top