Die Passwortverschlüsselung maskiert die Passwörter der Benutzer, sodass sie schwer zu erraten oder zu entschlüsseln sind. Dies ist ein wesentlicher Schritt bei der Entwicklung sicherer benutzerbasierter Software. Unabhängig davon, ob Sie eines mit Flask oder einem anderen leichten Python-Framework erstellen, können Sie diesen Schritt nicht ignorieren. Hier kommt bcrypt ins Spiel.

Wir zeigen Ihnen, wie Sie bcrypt verwenden, um Ihr Passwort in Python zu hashen.

So funktioniert bcrypt

Bcrypt ist eine sprachunabhängige Hashing-Bibliothek, die eine einzigartige Passwortverschlüsselung bietet. Beim Verschlüsseln Ihrer Zeichenfolge werden standardmäßig zusätzliche zufällige Zeichen (Salz) generiert, um die Sicherheit Ihres Passworts zu erhöhen.

Optional können Sie auch die Anzahl der zusätzlichen Zeichen angeben, die Sie einer eingehenden Zeichenfolge hinzufügen möchten.

Die bcrypt-Bibliothek liest keine Rohstrings – nur Byte-Code. Um zu beginnen, verschlüsseln Sie zuerst einen eingehenden Passwort-String, bevor Sie ihn zum Verschlüsseln an bcrypt übergeben.

instagram viewer

Verschlüsselung ist nicht gleich Verschlüsselung. Es stellt nur sicher, dass eine Zeichenfolge maschinenlesbar wird, bevor ein Verschlüsselungsalgorithmus sie maskieren kann.

Ein Passwort in Python mit bcrypt verschlüsseln

Die bcrypt-Passwortverschlüsselung ist mit Python ganz einfach. Wir werden uns darauf konzentrieren, wie Sie dies tun können, ohne ein Framework zu verwenden. Aber keine Sorge, es folgt dem gleichen Prozess in Frameworks, sobald Sie wissen, wie Sie die Eingaben Ihrer Benutzer speichern und aus der Datenbank lesen.

bcrypt installieren und einrichten

Falls noch nicht geschehen, eine virtuelle Python-Umgebung aktivieren in Ihrem Projektstamm. Dann installieren Sie bcrypt mit Pip:

pip installieren bcrpyt

Beginnen Sie mit der Verschlüsselung von Passwörtern

Sehen wir uns nach der Installation an, wie Sie eine Zeichenfolge mit bcrypt verschlüsseln:

# bcrypt importieren:
bcrypt importieren
password = "mypasswordstring"
# Passwort in einen lesbaren utf-8-Byte-Code codieren:
password = password.encode('utf-8')
# Hash das verschlüsselte Passwort und erzeuge einen Salt:
hashedPassword = bcrypt.hashpw (Passwort, bcrypt.gensalt())
drucken (hashedPassword)

Wenn du Führen Sie den Python-Code aus oben druckt es eine verschlüsselte Byte-Zeichenfolge. Die Ausgabe ändert sich jedoch jedes Mal, wenn Sie das Skript ausführen. Auf diese Weise stellt bcrypt sicher, dass jeder Benutzer ein eindeutig verschlüsseltes Passwort hat.

Das ist übrigens für die Passwortverschlüsselung.

So vergleichen und bestätigen Sie Passwörter mit bcrypt

Was ist, wenn Sie das Hash-Passwort speichern und später bestätigen möchten, dass es mit dem von einem Benutzer während der Authentifizierung bereitgestellten Passwort übereinstimmt?

Das ist leicht. Sie müssen nur das Authentifizierungspasswort mit dem in der Datenbank (oder in diesem Fall im Speicher) gespeicherten vergleichen.

Und da bcrypt nur Byte-Strings liest, müssen Sie auch das Authentifizierungspasswort verschlüsseln, bevor Sie es mit dem in der Datenbank vergleichen. Im Wesentlichen überprüfen Sie eine verschlüsselte Authentifizierungseingabe mit dem verschlüsselten Hash-Passwort, das bereits in Ihrer Datenbank gespeichert ist.

Sehen wir uns anhand von Dummy-Python-Eingaben an, wie dies in der Praxis funktioniert:

bcrypt importieren
#Passwort speichern:
password = str (input("passwort eingeben: "))
# Verschlüsseln Sie das gespeicherte Passwort:
password = password.encode('utf-8')
# Verschlüsseln Sie das gespeicherte Passwort:
hashed = bcrypt.hashpw (Passwort, bcrypt.gensalt (10))
# Erstellen Sie ein Eingabefeld für das Authentifizierungspasswort, um zu überprüfen, ob ein Benutzer das richtige Passwort eingibt:
check = str (input("check password:"))
# Verschlüsseln Sie auch das Authentifizierungspasswort:
check = check.encode('utf-8')
# Verwenden Sie Bedingungen, um das Authentifizierungspasswort mit dem gespeicherten zu vergleichen:
if bcrypt.checkpw (check, hashed):
print("Login erfolgreich")
anders:
print("falsches Passwort")

Der obige Code fordert Sie auf, ein neues Passwort einzugeben, wenn Sie ihn ausführen. Python speichert dies im Speicher. Sie geben dann dasselbe Passwort (nur Ihnen bekannt) im Authentifizierungsfeld ein.

Python gibt eine Erfolgsmeldung aus, wenn das verglichene Passwort mit dem zuvor verschlüsselten übereinstimmt. Andernfalls wird die fehlgeschlagene Nachricht ausgegeben, die in das verpackt ist anders Stellungnahme:

Das ganze Konzept entspricht dem Speichern eines Passworts in einer Datenbank bei der Registrierung und der späteren Bereitstellung bei der Authentifizierung.

Skalieren Sie die Verschlüsselung mit bcrypt

Obwohl wir nur demonstriert haben, wie bcrypt funktioniert, indem verschlüsselte Passwörter im einfachen Python-Kurzspeicher gespeichert werden, findet seine ultimative Verwendung in realen benutzerbasierten Anwendungen statt.

Nichtsdestotrotz zeigt dieses Tutorial die grundlegenden Möglichkeiten, Ihren Code zu strukturieren, um dies selbst in realen Szenarien zu erreichen. Wenn Sie beispielsweise Flask verwenden, können Sie die Eingaben durch separate Webformulare ersetzen, um die Registrierungs- und Authentifizierungsfelder bereitzustellen. Und natürlich speichern Sie verschlüsselte Passwörter in einer realen Datenbank und lesen diese beim Passwortvergleich aus.

12 grundlegende Verschlüsselungsbegriffe, die jetzt jeder kennen sollte

Alle reden von Verschlüsselung, aber Sie sind verloren oder verwirrt? Hier sind einige wichtige Verschlüsselungsbegriffe, die Sie kennen müssen.

Weiter lesen

TeilenTweetEmail
Verwandte Themen
  • Programmierung
  • Python
  • Programmierung
  • Sicherheit
Über den Autor
Idowu Omisola (116 veröffentlichte Artikel)

Idowu hat eine Leidenschaft für alles, was smarte Technologien und Produktivität ist. In seiner Freizeit spielt er mit Programmieren und wechselt bei Langeweile aufs Schachbrett, aber er liebt es auch, ab und zu aus der Routine auszubrechen. Seine Leidenschaft, Menschen den Weg in die moderne Technik zu weisen, motiviert ihn, mehr zu schreiben.

Mehr von Idowu Omisola

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren