Πίνακας περιεχομένων:

Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python: 3 βήματα
Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python: 3 βήματα

Βίντεο: Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python: 3 βήματα

Βίντεο: Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python: 3 βήματα
Βίντεο: Κρυπτογράφηση Microsoft Office αρχείων, zip, USB, σκληρούς δίσκους 2024, Νοέμβριος
Anonim
Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python
Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python
Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python
Λογισμικό κρυπτογράφησης/αποκρυπτογράφησης ασφάλειας Python

Σε αυτό το Instructable θα σας δείξω πώς με κάποια απλή Python, μπορείτε να διατηρήσετε τα αρχεία σας ασφαλή χρησιμοποιώντας το βιομηχανικό πρότυπο AES.

Απαιτήσεις:

- Python 3.7

- Βιβλιοθήκη PyAesCrypt

- βιβλιοθήκη hashlib

Εάν δεν έχετε αυτές τις βιβλιοθήκες, μπορείτε να εγκαταστήσετε εύκολα πληκτρολογώντας:

pip3 εγκαταστήστε το hashlib

pip3 εγκαταστήστε το PyAesCrypt

στο τερματικό (ή CMD)

Θα πρέπει να έχετε ήδη αυτά:

- τυχαία βιβλιοθήκη

- os βιβλιοθήκη

- βιβλιοθήκη συστήματος

Χρησιμοποιώ OS X, αλλά δεν πρέπει να έχει μεγάλη σημασία, εκτός από την κατεύθυνση των περιθωρίων στις διαδρομές αρχείων (OS X: /, Windows:)

Λάβετε υπόψη: Λόγω κάποιου σφάλματος, οι εσοχές στον κώδικα δεν εμφανίζονται για κάποιο λόγο. Κατά συνέπεια δεν θα υπάρχουν εσοχές στον εμφανιζόμενο κώδικα, ωστόσο υπάρχουν στα αρχεία Python που έχω επισυνάψει στο τέλος, και στις συνημμένες εικόνες. Απλώς μην πάρετε τον κώδικα απευθείας από το εμφανιζόμενο κείμενο, γιατί δεν θα λειτουργήσει λόγω της έλλειψης εσοχών

Εάν έχετε εγκαταστήσει όλες τις εξαρτήσεις, ας προχωρήσουμε στο Βήμα 1.

Βήμα 1: Γράψτε το αρχείο εγκατάστασης

Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης
Γράφοντας το αρχείο εγκατάστασης

Ένας από τους παράγοντες που το κάνουν τόσο ασφαλές είναι η χρήση κατακερματισμών για τον έλεγχο του κωδικού πρόσβασης. Το αρχείο εγκατάστασης (καλώ το δικό μου setupsafe.py) πρόκειται να:

- Δημιουργήστε έναν φάκελο και εικονικά αρχεία για τον κωδικό πρόσβασης

- Ορίστε τον κωδικό πρόσβασης

- Ορίστε τον αριθμό αρχείου

- Κρατήστε τον κωδικό πρόσβασης

Αρχικά, θα εισαγάγουμε τις εξαρτήσεις μας:

από εισαγωγή sys *

εισαγωγή os

τυχαία εισαγωγή

εισαγωγή hashlib

Στη συνέχεια, θα δημιουργήσουμε έναν φάκελο για να στεγάσουμε τον κωδικό πρόσβασης κωδικού πρόσβασης και τα εικονικά αρχεία:

δοκιμάστε: αν όχι os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

εκτός OSError:

εκτύπωση ("Σφάλμα κατά τη δημιουργία φακέλου")

Αυτός ο κώδικας θα δημιουργήσει ένα φάκελο που ονομάζεται safesetup (εκτός αν υπάρχει ήδη).

Μετά από αυτό, πρόκειται να ορίσουμε τον κωδικό πρόσβασης και να δημιουργήσουμε έναν τυχαίο αριθμό μεταξύ 1 και 100 ως τον τρόπο μας για την πλοήγηση στα εικονικά αρχεία:

καθολικός κωδικός πρόσβασης = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Τώρα που έχουμε τον κωδικό πρόσβασής μας και τον αριθμό αρχείου μας, πρόκειται να δημιουργήσουμε 99 εικονικά αρχεία μέσα στο safesetup και ένα πραγματικό αρχείο που θα περιέχει τον κωδικό πρόσβασης κωδικού πρόσβασής μας:

για x στην περιοχή (101): εάν (x! = n):

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

στ. κλείσιμο ()

αλλού:

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

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

f.write (κωδικός πρόσβασης)

στ. κλείσιμο ()

εκτύπωση (n)

Το πραγματικό αρχείο ονομάζεται ό, τι ακέραιος n είναι. Αυτό το αρχείο περιέχει τον κωδικό πρόσβασής μας, αφού κατακερματιστεί χρησιμοποιώντας τον αλγόριθμο sha256 (αυτός ο αλγόριθμος κατακερματισμού χρησιμοποιείται ευρέως σε κρυπτονομίσματα, κυρίως Bitcoin).

Θυμηθείτε τι είναι το n (θα εκτυπωθεί στην κονσόλα), καθώς είναι εξίσου σημαντικό με τον κωδικό πρόσβασης.

Αυτό είναι το μόνο που χρειαζόμαστε για το πρόγραμμα εγκατάστασης, οπότε θα περάσουμε τώρα στο πρόγραμμα κρυπτογράφησης/αποκρυπτογράφησης.

Βήμα 2: Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης

Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης
Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης
Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης
Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης
Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης
Το αρχείο κρυπτογράφησης/αποκρυπτογράφησης

Η ενότητα ρύθμισης του κύριου αρχείου εισάγει τις εξαρτήσεις, κατακερματίζει τον κωδικό πρόσβασης που εισάγεται και ανακτά τον πραγματικό κατακερματισμό κωδικού πρόσβασης χρησιμοποιώντας τον αριθμό αρχείου που έχει εισαχθεί.

Πρώτον, οι εξαρτήσεις:

από sys import *import os

εισαγωγή pyAesCrypt

εισαγωγή hashlib

Στη συνέχεια, ο κατακερματισμός του εισαγόμενου κωδικού πρόσβασης:

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

Τέλος, η ανάκτηση κατακερματισμένου κωδικού πρόσβασης:

file_key = str (argv [2]) hash = open (("desktop/safesetup/" + key_key), ("r +")). διαβάστε ()

Το δεύτερο τμήμα του αρχείου κρυπτογράφησης συγκρίνει τους κατακερματισμούς, καθορίζει την αλήθεια της σύγκρισης και χρησιμοποιεί τη βιβλιοθήκη python AESCrypt για την κρυπτογράφηση ή αποκρυπτογράφηση του αρχείου της επιλογής σας. Αυτό είναι ένα αρκετά μεγάλο κομμάτι κώδικα, αλλά θα το αναλύσω:

εάν (κωδικός πρόσβασης == κατακερματισμός): εκτύπωση ("Αποδεκτός ο κωδικός πρόσβασης")

bufferSize = 64 * 1024

λειτουργία = str (είσοδος ("Ανακτάτε ή κρυπτογραφείτε αρχεία; (r ή e)"))

εάν (λειτουργία == 'r'):

όνομα_αρχείου = str (είσοδος ("Αρχείο για ανάκτηση:"))

pyAesCrypt.decryptFile ((όνομα_αρχείου + ".aes"), όνομα_αρχείου, κωδικός πρόσβασης, bufferSize)

os.remove ((όνομα_αρχείου + ".aes"))

elif (λειτουργία == 'e'):

όνομα_αρχείου = str (είσοδος ("Αρχείο για κρυπτογράφηση:"))

pyAesCrypt.encryptFile (όνομα_αρχείου, (όνομα_αρχείου + ".aes"), κωδικός πρόσβασης, bufferSize)

os.remove (όνομα_αρχείου)

αλλού:

εκτύπωση ("Σφάλμα: Λανθασμένη εισαγωγή")

αλλού:

εκτύπωση ("Η πρόσβαση απαγορεύεται")

Η πρώτη εντολή if καθορίζει εάν οι κατακερματισμένοι κωδικοί πρόσβασης ταιριάζουν. Αν το κάνουν, τότε συνεχίζει να ρωτά αν θέλετε να κρυπτογραφήσετε αρχεία ή να ανακτήσετε κρυπτογραφημένα αρχεία. Ανάλογα με την εισαγωγή σας, είτε θα κρυπτογραφήσει είτε θα αποκρυπτογραφήσει το παρεχόμενο αρχείο. Όταν σας ζητηθεί να δώσετε το όνομα του αρχείου, βεβαιωθείτε ότι έχετε καθορίσει τη διαδρομή, εκτός εάν το αρχείο βρίσκεται στον ίδιο κατάλογο με το πρόγραμμα python. Το πρόγραμμα διαγράφει το αρχείο στην προηγούμενη κατάσταση, αντικαθιστώντας το με κρυπτογραφημένο αρχείο.aes ή αποκρυπτογραφώντας το και αντικαθιστώντας το με το αρχικό αρχείο.

Στο μέλλον, μπορεί να το ενημερώσω ώστε να περιλαμβάνει αναγνώριση προσώπου χρησιμοποιώντας τη βιβλιοθήκη Python OpenCV, αλλά προς το παρόν οι κωδικοί πρόσβασης θα πρέπει να επαρκούν.

Βήμα 3: Λειτουργία αρχείων

Για να εκτελέσετε το αρχείο εγκατάστασης, ακολουθήστε τα εξής βήματα:

1. Πληκτρολογήστε το τερματικό:

python3 directory/setupname.py password (αντικατάσταση καταλόγου, ονόματος εγκατάστασης και κωδικού πρόσβασης με τις αντίστοιχες τιμές τους)

2. Το τερματικό θα εξάγει τον αριθμό αρχείου σας. Κράτησέ το.

Για να εκτελέσετε το πρόγραμμα κρυπτογράφησης/αποκρυπτογράφησης, ακολουθήστε τα εξής βήματα:

1. Πληκτρολογήστε το τερματικό:

κατάλογος python3/όνομα αρχείου.py κωδικός πρόσβασης αρχείου (αντικατάσταση καταλόγου, ονόματος αρχείου, κωδικού πρόσβασης και αριθμού αρχείου με τις αντίστοιχες τιμές τους)

2. Το τερματικό θα αποδεχτεί ή θα απορρίψει τον κωδικό πρόσβασής σας. Εάν απορριφθεί, δοκιμάστε ξανά και βεβαιωθείτε ότι πληκτρολογείτε τις σωστές τιμές. Μόλις παραχωρηθεί η πρόσβαση, το τερματικό θα σας ρωτήσει εάν θέλετε να κρυπτογραφήσετε ένα αρχείο ή να το ανακτήσετε. Για να κρυπτογραφήσετε ένα αρχείο, πληκτρολογήστε e και για να ανακτήσετε ένα κρυπτογραφημένο αρχείο, πληκτρολογήστε r.

3. Στη συνέχεια θα σας ζητηθεί να δώσετε το όνομα του αρχείου. Θυμηθείτε να δώσετε τον κατάλογο του αρχείου καθώς και το όνομα, καθώς και την επέκταση αρχείου. Ωστόσο, εάν αποκρυπτογραφείτε ένα αρχείο, μην πληκτρολογείτε το τμήμα.aes της επέκτασης, καθώς ο κώδικας το υπολογίζει.

4. Το πρόγραμμα στη συνέχεια κρυπτογραφεί ή αποκρυπτογραφεί το παρεχόμενο αρχείο και διαγράφει το αρχείο στην προηγούμενη κατάσταση (διατηρώντας το κρυπτογραφημένο ή αποκρυπτογραφημένο αρχείο).

Βοϊλα! Ευχαριστώ που το κάνατε τόσο διδακτικό, ξέρω ότι η ανάγνωση σεμιναρίων κώδικα δεν είναι το πιο διασκεδαστικό πράγμα. Τα αρχεία python περικλείονται σε αυτό το βήμα, για όσους από εσάς θέλετε να δώσετε μια ευκαιρία. Για άλλη μια φορά, σας ευχαριστώ για την ανάγνωση και σας εύχομαι καλή τύχη στις μελλοντικές σας προσπάθειες κωδικοποίησης.

Συνιστάται: