Inhaltsverzeichnis:

Python Security Verschlüsselungs-/Entschlüsselungssoftware - Gunook
Python Security Verschlüsselungs-/Entschlüsselungssoftware - Gunook

Video: Python Security Verschlüsselungs-/Entschlüsselungssoftware - Gunook

Video: Python Security Verschlüsselungs-/Entschlüsselungssoftware - Gunook
Video: Encryption program in Python 🔒 2024, November
Anonim
Python-Sicherheitsverschlüsselungs-/Entschlüsselungssoftware
Python-Sicherheitsverschlüsselungs-/Entschlüsselungssoftware
Python-Sicherheitsverschlüsselungs-/Entschlüsselungssoftware
Python-Sicherheitsverschlüsselungs-/Entschlüsselungssoftware

In diesem Instructable zeige ich Ihnen, wie Sie mit einigen einfachen Python Ihre Dateien mit dem Industriestandard AES sicher halten können.

Anforderungen:

- Python 3.7

- PyAesCrypt-Bibliothek

- Hashlib-Bibliothek

Wenn Sie diese Bibliotheken nicht haben, können Sie sie einfach installieren, indem Sie Folgendes eingeben:

pip3 Hashlib installieren

pip3 PyAesCrypt installieren

im Terminal (oder CMD)

Diese solltest du schon haben:

- zufällige Bibliothek

- OS-Bibliothek

- Systembibliothek

Ich verwende OS X, aber es sollte nicht allzu wichtig sein, außer der Richtung der Schrägstriche in den Dateipfaden (OS X: /, Windows:)

Bitte beachten: Aufgrund eines Fehlers werden die Einrückungen im Code aus irgendeinem Grund nicht angezeigt. Im angezeigten Code wird es folglich keine Einrückungen geben, diese sind jedoch in den Python-Dateien, die ich am Ende angehängt habe, und in den beigefügten Bildern vorhanden. Nehmen Sie den Code nur nicht direkt aus dem angezeigten Text, da er aufgrund der fehlenden Einrückungen nicht funktioniert

Wenn Sie alle Abhängigkeiten installiert haben, fahren wir mit Schritt 1 fort.

Schritt 1: Schreiben der Setup-Datei

Schreiben der Setup-Datei
Schreiben der Setup-Datei
Schreiben der Setup-Datei
Schreiben der Setup-Datei
Schreiben der Setup-Datei
Schreiben der Setup-Datei
Schreiben der Setup-Datei
Schreiben der Setup-Datei

Einer der Faktoren, der dies so sicher macht, ist die Verwendung von Hashes zur Überprüfung des Passworts. Die Setup-Datei (ich nenne meine setupsafe.py) wird:

- Erstellen Sie einen Ordner und Dummy-Dateien für das Passwort

- Passwort festlegen

- Legen Sie die Dateinummer fest

- Hash das Passwort

Zunächst importieren wir unsere Abhängigkeiten:

aus sys-Import *

Importieren von OS

zufällig importieren

Hashlib importieren

Als nächstes erstellen wir einen Ordner, um den Passwort-Hash und die Dummy-Dateien zu speichern:

versuchen: wenn nicht os.path.exists('desktop/safesetup'):

os.mkdir('desktop/safesetup/')

außer OSError:

print("Fehler beim Erstellen des Ordners")

Dieser Code erstellt einen Ordner namens safesetup (sofern er nicht bereits vorhanden ist).

Danach legen wir das Passwort fest und generieren eine Zufallszahl zwischen 1 und 100, um durch die Dummy-Dateien zu navigieren:

globales Passwortpassword = argv[1].encode('utf-8')

n = random.randint(1, 101)

Nachdem wir nun unser Passwort und unsere Dateinummer haben, erstellen wir 99 Dummy-Dateien in Safesetup und eine echte Datei, die unseren Passwort-Hash enthält:

für x im Bereich(101): if(x != n):

f = open(("desktop/safesetup/"+str(x)), "w+")

f.schließen()

anders:

Passwort = hashlib.sha256(password).hexdigest()

f = open(("desktop/safesetup/"+str(x)), "w+")

f.schreiben (Passwort)

f.schließen()

drucken(n)

Die reale Datei heißt ganzzahlig n. Diese Datei enthält unser Passwort, nachdem es mit dem sha256-Algorithmus gehasht wurde (dieser Hash-Algorithmus wird häufig in Kryptowährungen verwendet, insbesondere bei Bitcoin).

Denken Sie daran, was n ist (es wird in der Konsole ausgegeben), da es genauso wichtig ist wie das Passwort.

Das ist alles, was wir für unser Setup-Programm brauchen, also gehen wir jetzt zum Verschlüsselungs-/Entschlüsselungsprogramm über.

Schritt 2: Die Verschlüsselungs-/Entschlüsselungsdatei

Die Verschlüsselungs-/Entschlüsselungsdatei
Die Verschlüsselungs-/Entschlüsselungsdatei
Die Verschlüsselungs-/Entschlüsselungsdatei
Die Verschlüsselungs-/Entschlüsselungsdatei
Die Verschlüsselungs-/Entschlüsselungsdatei
Die Verschlüsselungs-/Entschlüsselungsdatei

Der Setup-Abschnitt der Hauptdatei importiert die Abhängigkeiten, hasht das eingegebene Passwort und ruft den echten Passwort-Hash unter Verwendung der eingegebenen Dateinummer ab.

Zuerst die Abhängigkeiten:

from sys import *import os

pyAesCrypt importieren

Hashlib importieren

Als nächstes das Hashing des eingegebenen Passworts:

password = argv[1].encode('utf-8')password = hashlib.sha256(password).hexdigest()

Schließlich der Abruf des gehashten Passworts:

file_key = str(argv[2])hash = open(("desktop/safesetup/" + file_key), ("r+")).read()

Der zweite Abschnitt der Verschlüsselungsdatei vergleicht die Hashes, bestimmt die Richtigkeit des Vergleichs und verwendet die AESCrypt-Python-Bibliothek, um die Datei Ihrer Wahl zu verschlüsseln oder zu entschlüsseln. Dies ist ein ziemlich großer Codeblock, aber ich werde ihn aufschlüsseln:

if(password == hash): print("Passwort akzeptiert")

Puffergröße = 64 * 1024

operation = str(input("Abrufen oder verschlüsseln Sie Dateien? (r oder e)"))

if(operation == 'r'):

file_name = str(input("Datei zum Abrufen:"))

pyAesCrypt.decryptFile((Dateiname + ".aes"), Dateiname, Passwort, Puffergröße)

os.remove((Dateiname + ".aes"))

elif(operation == 'e'):

file_name = str(input("Zu verschlüsselnde Datei:"))

pyAesCrypt.encryptFile(Dateiname, (Dateiname + ".aes"), Passwort, Puffergröße)

os.remove(Dateiname)

anders:

print("Fehler: Falsche Eingabe")

anders:

print("Zugriff verweigert")

Die erste if-Anweisung bestimmt, ob die gehashten Passwörter übereinstimmen. Wenn dies der Fall ist, wird gefragt, ob Sie Dateien verschlüsseln oder verschlüsselte Dateien abrufen möchten. Abhängig von Ihrer Eingabe wird die bereitgestellte Datei entweder verschlüsselt oder entschlüsselt. Wenn Sie aufgefordert werden, den Namen der Datei anzugeben, stellen Sie sicher, dass Sie den Pfad angeben, es sei denn, die Datei befindet sich im selben Verzeichnis wie das Python-Programm. Das Programm löscht die Datei in ihrem vorherigen Zustand, ersetzt sie durch eine verschlüsselte.aes-Datei oder entschlüsselt sie und ersetzt sie durch die Originaldatei.

In Zukunft werde ich dies möglicherweise aktualisieren, um die Gesichtserkennung mithilfe der Python OpenCV-Bibliothek einzubeziehen, aber für den Moment müssen Passwörter ausreichen.

Schritt 3: Betrieb von Dateien

Führen Sie die folgenden Schritte aus, um die Setup-Datei auszuführen:

1. Geben Sie das Terminal ein:

python3 directory/setupname.py password (ersetzt Verzeichnis, Setupname und Passwort durch ihre jeweiligen Werte)

2. Das Terminal gibt Ihre Dateinummer aus. Behalte das.

Führen Sie die folgenden Schritte aus, um das Verschlüsselungs-/Entschlüsselungsprogramm auszuführen:

1. Geben Sie das Terminal ein:

python3-Verzeichnis/Dateiname.py Kennwort Dateinummer (Ersetzen von Verzeichnis, Dateiname, Kennwort und Dateinummer durch ihre jeweiligen Werte)

2. Das Terminal wird Ihr Passwort dann entweder akzeptieren oder ablehnen. Wenn Sie abgelehnt werden, versuchen Sie es erneut und stellen Sie sicher, dass Sie die richtigen Werte eingeben. Nachdem der Zugriff gewährt wurde, werden Sie vom Terminal gefragt, ob Sie eine Datei verschlüsseln oder eine Datei abrufen möchten. Um eine Datei zu verschlüsseln, geben Sie e ein, und um eine verschlüsselte Datei abzurufen, geben Sie r ein.

3. Anschließend werden Sie aufgefordert, den Dateinamen anzugeben. Denken Sie daran, das Verzeichnis der Datei sowie den Namen und die Dateierweiterung anzugeben. Wenn Sie jedoch eine Datei entschlüsseln, geben Sie nicht den.aes-Teil der Erweiterung ein, da der Code dies berücksichtigt.

4. Das Programm verschlüsselt oder entschlüsselt dann die bereitgestellte Datei und löscht die Datei in ihrem vorherigen Zustand (wobei die verschlüsselte oder entschlüsselte Datei beibehalten wird).

Voila! Vielen Dank, dass Sie es so weit in das anweisbare gemacht haben, ich weiß, dass das Lesen von Code-Tutorials nicht die unterhaltsamste Sache ist. Die Python-Dateien sind in diesem Schritt enthalten, für diejenigen unter Ihnen, die dies ausprobieren möchten. Nochmals vielen Dank fürs Lesen und ich wünsche Ihnen viel Glück bei Ihren zukünftigen Coding-Bemühungen.

Empfohlen: