LC.crypt.*¶
Dieses Modul stellt verschiedene Verschlüsselungsfunktionen bereit, hauptsächlich für das Hashing bzw. die Verschlüsselung von Passwörtern.
-
LC.crypt.
cram_md5
(input)¶ -
- Parameter
-
-
input (String) – Eingabe-String (z.B. Passwort)
-
- Rückgabe
-
Vor-gehashter CRAM-MD5-String
Diese Funktion bereitet einen CRAM-MD5-Hash vor. Hauptanwendung hierfür sind POP3/IMAP-Server, welche eine Anmeldung im Klartext (LOGIN/PLAIN) sowie mit dem minimal sichereren CRAM-MD5-Verfahren erlauben, ohne dabei die Passwörter im Klartext auf dem Server speichern zu müssen.
Diese Funktion bereitet lediglich eine Hash-Struktur vor, das eigentliche Hashing wird nicht ausgeführt. Das bedeutet, dass die Ausgabedaten von
cram_md5()
relativ einfach auch wieder entschlüsselt werden können.
-
LC.crypt.
crypt
(input)¶ -
- Parameter
-
-
input (String) – Eingabe-String (z.B. Passwort)
-
- Rückgabe
-
gehashter String
Diese Funktion erzeugt mittels DES-Algorithmus einen
crypt()
-kompatiblen Hash des übergebenen Parameters. Dieses Format kann z.B. in typischen Passwort-Dateien (/etc/passwd
) verwendet werden. Diese Hash-Methode ist nicht sicher (kann relativ einfach entschlüsselt werden).
-
LC.crypt.
crypt_md5
(input)¶ -
- Parameter
-
-
input (String) – Eingabe-String (z.B. Passwort)
-
- Rückgabe
-
gehashter String
Diese Funktion erzeugt ein 8 Zeichen langes „Salt“ und berechnet aus diesem sowie dem übergebenen Passwort einen MD5-Hash. Dieses Format kann z.B. in moderneren Passwort-Dateien verwendet werden. Auch MD5-Hashes können relativ einfach geknackt werden, diese Methode ist also auch nicht besonders sicher.
Examples
pw = LC.crypt.cram_md5("test")
-- result: e02d374fde0dc75a17a557039a3a5338c7743304777dccd376f332bee68d2cf6
pw = LC.crypt.crypt("test")
-- result: e.g. SALwWlL5CAfNE
pw = LC.crypt.crypt_md5("test")
-- result: e.g. $1$u5OJQYF3$jG4Q5xqQd1tE10d27XgC40