Sommario:

Software di crittografia/decrittografia di sicurezza Python: 3 passaggi
Software di crittografia/decrittografia di sicurezza Python: 3 passaggi

Video: Software di crittografia/decrittografia di sicurezza Python: 3 passaggi

Video: Software di crittografia/decrittografia di sicurezza Python: 3 passaggi
Video: #1 Crittografia con Python - Cifrario di Cesare 2024, Novembre
Anonim
Software di crittografia/decrittografia di sicurezza Python
Software di crittografia/decrittografia di sicurezza Python
Software di crittografia/decrittografia di sicurezza Python
Software di crittografia/decrittografia di sicurezza Python

In questo Instructable ti mostrerò come con un semplice Python, puoi proteggere i tuoi file usando lo standard AES del settore.

Requisiti:

- Python 3.7

- Libreria PyAesCrypt

- libreria hashlib

Se non disponi di queste librerie, puoi installarle facilmente digitando:

pip3 installa hashlib

pip3 installa PyAesCrypt

nel terminale (o CMD)

Dovresti già avere questi:

- libreria casuale

- libreria del sistema operativo

- libreria di sistema

Sto usando OS X, ma non dovrebbe importare troppo, ad eccezione della direzione delle barre nei percorsi dei file (OS X: /, Windows:)

Nota: a causa di alcuni problemi tecnici, i rientri nel codice non vengono visualizzati per qualche motivo. Di conseguenza non ci saranno rientri nel codice visualizzato, tuttavia sono presenti nei file Python che ho allegato alla fine e nelle immagini allegate. Basta non prendere il codice direttamente dal testo visualizzato, perché non funzionerà a causa della mancanza di rientri

Se hai installato tutte le dipendenze, passiamo al passaggio 1.

Passaggio 1: scrittura del file di installazione

Scrivere il file di installazione
Scrivere il file di installazione
Scrivere il file di installazione
Scrivere il file di installazione
Scrivere il file di installazione
Scrivere il file di installazione
Scrivere il file di installazione
Scrivere il file di installazione

Uno dei fattori che lo rende così sicuro è l'uso di hash per controllare la password. Il file di installazione (che chiamo il mio setupsafe.py) sta per:

- Crea una cartella e file fittizi per la password

- Imposta la password

- Imposta il numero del file

- Hash la password

Prima di tutto, importeremo le nostre dipendenze:

da sys import *

importare il sistema operativo

importa casuale

importa hashlib

Successivamente creeremo una cartella per ospitare l'hash della password e i file fittizi:

prova: se non os.path.exists('desktop/safesetup'):

os.mkdir('desktop/safesetup/')

tranne OSErrore:

print("Errore durante la creazione della cartella")

Questo codice creerà una cartella chiamata safesetup (a meno che non esista già).

Dopodiché, imposteremo la password e genereremo un numero casuale compreso tra 1 e 100 per navigare tra i file fittizi:

password globale password = argv[1].encode('utf-8')

n = random.randint(1, 101)

Ora che abbiamo la nostra password e il nostro numero di file, creeremo 99 file fittizi all'interno di safesetup e un file reale che conterrà il nostro hash della password:

for x in range(101): if(x != n):

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

f.chiudi()

altro:

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

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

f.write(password)

f.chiudi()

stampa(n)

Il file reale si chiama qualunque sia l'intero n. Questo file contiene la nostra password, dopo essere stata hash utilizzando l'algoritmo sha256 (questo algoritmo hash è ampiamente utilizzato nelle criptovalute, in particolare Bitcoin).

Ricorda cos'è n (verrà stampato nella console), poiché è importante quanto la password.

Questo è tutto ciò di cui abbiamo bisogno per il nostro programma di installazione, quindi ora passeremo al programma di crittografia/decrittografia.

Passaggio 2: il file di crittografia/decrittografia

Il file di crittografia/decrittografia
Il file di crittografia/decrittografia
Il file di crittografia/decrittografia
Il file di crittografia/decrittografia
Il file di crittografia/decrittografia
Il file di crittografia/decrittografia

La sezione di configurazione del file principale importa le dipendenze, esegue l'hash della password immessa e recupera l'hash della password reale utilizzando il numero di file immesso.

Innanzitutto, le dipendenze:

da sys import *import os

import pyAesCrypt

importa hashlib

Successivamente, l'hashing della password immessa:

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

Infine, il recupero della password con hash:

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

La seconda sezione del file di crittografia confronta gli hash, determina la verità del confronto e utilizza la libreria python AESCrypt per crittografare o decrittografare il file preferito. Questo è un pezzo di codice piuttosto grande, ma lo analizzerò:

if(password == hash): print("Password accettata")

dimensione del buffer = 64 * 1024

operazione = str(input("Stai recuperando o crittografando i file? (r o e) "))

if(operazione == 'r'):

nome_file = str(input("File da recuperare: "))

pyAesCrypt.decryptFile((file_name + ".aes"), file_name, password, bufferSize)

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

elif(operazione == 'e'):

nome_file = str(input("File da crittografare: "))

pyAesCrypt.encryptFile(file_name, (file_name + ".aes"), password, bufferSize)

os.remove(nome_file)

altro:

print("Errore: inserimento errato")

altro:

print("Accesso negato")

La prima istruzione if determina se le password con hash corrispondono. Se lo fanno, continua a chiedere se si desidera crittografare i file o recuperare i file crittografati. A seconda dell'input, verrà crittografato o decrittografato il file fornito. Quando viene richiesto di fornire il nome del file, assicurarsi di specificare il percorso a meno che il file non si trovi nella stessa directory del programma Python. Il programma elimina il file nel suo stato precedente, sostituendolo con un file.aes crittografato o decrittografandolo e sostituendolo con il file originale.

In futuro, potrei aggiornarlo per includere il riconoscimento facciale utilizzando la libreria Python OpenCV, ma per ora le password dovranno essere sufficienti.

Passaggio 3: funzionamento dei file

Per eseguire il file di installazione, segui questi passaggi:

1. Digitare nel terminale:

python3 directory/setupname.py password (sostituendo directory, setupname e password con i rispettivi valori)

2. Il terminale emetterà il tuo numero di file. Tieni questo.

Per eseguire il programma di crittografia/decrittografia, attenersi alla seguente procedura:

1. Digitare nel terminale:

python3 directory/filename.py password filenumber (sostituisce directory, filename, password e filenumber con i rispettivi valori)

2. Il terminale accetterà o rifiuterà la password. Se rifiutato, riprova e assicurati di digitare i valori corretti. Una volta concesso l'accesso, il terminale ti chiederà se desideri crittografare un file o recuperare un file. Per crittografare un file, digitare e e per recuperare un file crittografato, digitare r.

3. Ti verrà quindi chiesto di fornire il nome del file. Ricordati di fornire la directory del file, il nome e anche l'estensione del file. Tuttavia, se stai decrittografando un file, non digitare la parte.aes dell'estensione, poiché il codice ne tiene conto.

4. Il programma quindi crittografa o decrittografa il file fornito ed elimina il file nel suo stato precedente (mantenendo il file crittografato o decrittografato).

Ecco! Grazie per essere arrivato fino a questo punto nell'istruzione, so che leggere i tutorial sul codice non è la cosa più divertente. I file Python sono racchiusi in questo passaggio, per quelli di voi che vogliono provare. Ancora una volta, grazie per aver letto, e ti auguro buona fortuna per i tuoi futuri sforzi di codifica.

Consigliato: