Mit der crypt-Modul in Windows?
Im IDLE und der Python-version 3.3.2, ich versuche und rufen Sie das python-Modul, etwa so:
hash2 = crypt(word, salt)
Ich importieren damit an die Spitze der mein Programm in etwa so:
from crypt import *
Den Ergebnissen, die ich bekomme ist folgende:
Traceback (most recent call last):
File "C:\none\of\your\business\adams.py", line 10, in <module>
from crypt import *
File "C:\Python33\lib\crypt.py", line 3, in <module>
import _crypt
ImportError: No module named '_crypt'
Allerdings, wenn ich führen Sie die gleiche Datei adams.py
in Ubuntu mit Python 2.7.3, führt er perfekt - kein Fehler.
Ich habe Folgendes versucht, um das Problem zu beheben für meine Windows & Python 3.3.2 (obwohl ich sicher bin, das OS ist nicht das Problem, die Python-version oder meine Verwendung der syntax ist das Problem):
- Benennen Sie das Verzeichnis, in das
Python33
Verzeichnis vonLib
zulib
- Benennen Sie die
crypt.py
imlib
zu_crypt.py
. Jedoch, es stellt sich heraus, der gesamtecrypt.py
- Modul hängt an einem externen Modul namens_crypt.py
zu. - Durchsucht internet zum download im entferntesten geeignet zu ähneln
_crypt.py
Es ist nicht Python, richtig? Es ist mir...(?) Ich bin mit der Syntax zum importieren und verwenden Sie externe Module, die akzeptabel sind in 2.7.3, aber nicht in 3.3.2. Oder habe ich einen Fehler gefunden in der 3.3.2?
InformationsquelleAutor adampski | 2013-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, dass ist, weil
crypt
ist ein Unix-Spezifische Service.Recht an der Spitze der docs für
crypt
:äh, was? Die IDE spielt keine Rolle. Windows ist nicht Unix. Es ist egal, welche IDE Sie verwenden, Unix-spezifische Dienste wird nicht für Sie arbeiten in Windows.
Hmmm. Seltsam. Never mind, danke für den Hinweis zu mir.
InformationsquelleAutor roippi
Ein besserer Ansatz wäre, um die python-passlib Modul generiert kompatibel crypt hashes von linux-Passwörter (ich nehme an, das ist, was Sie wahrscheinlich wollen). Ich habe überprüft dies mithilfe von Kickstart-Dateien, die durch die Injektion der generierten Hash-Kennwort rootpw-Wert in-und user-Attribute. Die Funktionen, die Sie benötigen, sind:
Der erste parameter ist selbsterklärend.
Die zweite & Dritte parameter haben zu tun mit der Einhaltung der Spezifikation und sind erforderlich, um linux-kompatibel Passwort-hashes***
(siehe: Passlib: SHA256-spec, format & Algorithmus)
***ANMERKUNG: Getestet mit SHA512, aber ich sehe keinen Grund, warum es nicht funktionieren sollte mit SHA256 oder MD5.
Ich verstehe wirklich nicht, dein Kommentar. In jedem Fall habe ich noch eine einfachere Methode zum generieren von Passwörter für die Linux-kompatible VMs, während Sie Windows als Entwicklungsumgebung 😉 Alles andere war zu viel Schmerz oder war von zweifelhafter Qualität/Funktionalität. Dennoch, diese lib ist crypt-kompatibel, wenn man sich die docs :]
Die crypt(3) - Funktion in der system-libc kann mehr als nur die alte UNIX-crypt-Methode. Insbesondere die glibc hat einen SHA-512 abgeleiteten hash-Bau ($6$...). Dann, wenn Sie generieren ein Passwort für /etc/password, nginx basic-auth oder irgendetwas anderes, das verwendet crypt(3), Sie haben tatsächlich nicht die alten UNIX-crypt-Algorithmus. Python ' s crypt-Modul unterstützt diese alternativen Methoden seit Python 3.3.
InformationsquelleAutor Kounavi
Fand ich ein Alternatives Modul mit dem Namen fcrypt finden Sie hier:
Es ist alt, also nicht erwarten, Python ist3 Kompatibilität.
InformationsquelleAutor Gringo Suave
Können Sie statt 'bcrypt" für diesen Zweck auf einem Windows-PC ist dies getan, denn die Krypta ist ein UNIX-Modul, nur damit nicht kompatibel sein, die in windows einfach. Gehen Sie für bcrypt
Diese wird Ihre Arbeit erledigen.
Für weitere Informationen, besuchen Sie:
http://passlib.readthedocs.io/en/stable/install.html
https://pypi.python.org/pypi/bcrypt/2.0.0
InformationsquelleAutor Akash Kumar