Wenn Sie nur verhindern möchten, dass Sie beiläufig auf ein Passwort blicken, sollten Sie erwägen, das Passwort nach/von base64 zu codieren/decodieren. Es ist nicht im Geringsten sicher, aber das Passwort wird nicht zufällig von Menschen/Robotern gelesen werden können.
import base64
# Encode password (must be bytes type)
encoded_pw = base64.b64encode(raw_pw)
# Decode password (must be bytes type)
decoded_pw = base64.b64decode(encoded_pw)
Offensichtlich ist es am besten, dies an einen Dritten zu delegieren. Wenn Sie sich mit anderen Anmeldeinformationen (z. B. dem Benutzerkonto, unter dem Ihr Prozess ausgeführt wird) authentifizieren können, mit dem Sie sich verbinden, können Sie die Berechtigungsstufen der Betriebssystemebene überlassen. Alternativ, falls ausreichend wichtig/möglich, könnten Sie den Benutzer auffordern (Speichern des Schlüssels stattdessen in der (wohl) etwas weniger hackbaren Wetware)
Wenn Sie tun ein Passwort oder einen Schlüssel speichern müssen, empfehle ich Ihnen, es separat zu speichern aus Ihrem Code, in einer Datei, die Sie einlesen, und ggf. entschleieren. Dies hat folgende Vorteile:
-
Sie können die Dateiberechtigungen für die Datei so streng wie möglich festlegen (d. h. nur für das Konto lesbar, unter dem Ihr Programm ausgeführt wird), im Gegensatz zum Rest Ihres Programms, das möglicherweise von mehr Personen gelesen wird.
-
Sie werden es nicht versehentlich in Ihr Versionskontrollsystem einchecken!
-
Sie müssen sich für eine Python-Zeichenfolge nicht auf druckbare Zeichen beschränken (oder umständliches Escape-Zeichen verwenden), sodass Sie nach Möglichkeit eine beliebige Schlüsseldatei anstelle eines für Menschen lesbaren Kennworts verwenden können. Wenn es nicht von Menschen eingegeben wird, gibt es keinen Grund, alle Schwächen von Passwörtern zu haben.
Um zu verschleiern, können Sie base64 wie vorgeschlagen verwenden oder ein hausgemachtes Schema wie XORing oder Entschlüsseln mit einem anderen Schlüssel, der an anderer Stelle gespeichert ist, wobei beide Speicherorte betrachtet werden müssen. Beachten Sie, dass dies nicht vor allem schützt, was über opportunistisches Schultersurfen hinausgeht (falls vorhanden) - stellen Sie sicher, dass ein gewisses Maß an echtem vorhanden ist Sicherheit (einschließlich offensichtlicher wie physischer Zugriff auf die Maschine!)