Cuprins:
- Pasul 1: Scrierea fișierului de configurare
- Pasul 2: fișierul de criptare / decriptare
- Pasul 3: Funcționarea fișierelor
Video: Software de criptare / decriptare Python Security: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest Instructable vă voi arăta cum, cu un Python simplu, vă puteți păstra fișierele în siguranță folosind AES standard din industrie.
Cerințe:
- Python 3.7
- Biblioteca PyAesCrypt
- biblioteca hashlib
Dacă nu aveți aceste biblioteci, puteți instala cu ușurință tastând:
pip3 instala hashlib
pip3 instalează PyAesCrypt
în terminal (sau CMD)
Ar trebui să aveți deja următoarele:
- biblioteca aleatorie
- biblioteca OS
- biblioteca de sistem
Folosesc OS X, dar nu ar trebui să conteze prea mult, cu excepția direcției oblelor din căile de fișiere (OS X: /, Windows:)
Vă rugăm să rețineți: Din cauza unor erori, indentările din cod nu apar din anumite motive. În consecință, nu vor exista indentări în codul afișat, cu toate acestea sunt prezente în fișierele Python pe care le-am atașat la sfârșit și în imaginile anexate. Nu luați codul direct din textul afișat, deoarece acesta nu va funcționa din cauza lipsei indentărilor
Dacă aveți toate dependențele instalate, să trecem la Pasul 1.
Pasul 1: Scrierea fișierului de configurare
Unul dintre factorii care face acest lucru atât de sigur este utilizarea hashurilor pentru a verifica parola. Fișierul de configurare (îl chem pe setupsafe.py al meu) va:
- Creați un folder și fișiere fictive pentru parolă
- Setați parola
- Setați numărul fișierului
- Hash parola
În primul rând, vom importa dependențele noastre:
din sys import *
import os
import aleatoriu
import hashlib
Apoi vom crea un folder pentru a găzdui hash-ul parolei și fișierele fictive:
încercați: dacă nu os.path.exists ('desktop / safesetup'):
os.mkdir ('desktop / safesetup /')
cu excepția OSError:
print („Eroare la crearea dosarului”)
Acest cod va crea un folder numit safesetup (dacă nu există deja).
După aceasta, vom seta parola și vom genera un număr aleatoriu între 1 și 100 ca modalitate de a naviga prin fișierele fictive:
global passwordpassword = argv [1].encode ('utf-8')
n = random.randint (1, 101)
Acum că avem parola și numărul fișierului, vom crea 99 de fișiere fictive în safesetup și un fișier real care va conține hash-ul parolei noastre:
pentru x în intervalul (101): dacă (x! = n):
f = deschis (("desktop / safesetup /" + str (x)), "w +")
f.close ()
altceva:
parola = hashlib.sha256 (parola).hexdigest ()
f = deschis (("desktop / safesetup /" + str (x)), "w +")
f.write (parola)
f.close ()
print (n)
Fișierul real se numește orice număr întreg este. Acest fișier conține parola noastră, după ce a fost hashizat folosind algoritmul sha256 (acest algoritm hash este utilizat pe scară largă în criptomonede, în special Bitcoin).
Amintiți-vă ce este n (va fi tipărit în consolă), deoarece este la fel de important ca parola.
Asta este tot ce avem nevoie pentru programul nostru de configurare, așa că vom trece acum la programul de criptare / decriptare.
Pasul 2: fișierul de criptare / decriptare
Secțiunea de configurare a fișierului principal importă dependențele, hashează parola introdusă și preia hash-ul real al parolei folosind numărul fișierului introdus.
În primul rând, dependențele:
din sys import * import os
import pyAesCrypt
import hashlib
Apoi, hashing-ul parolei introduse:
parolă = argv [1].encode ('utf-8') parolă = hashlib.sha256 (parolă).hexdigest ()
În cele din urmă, recuperarea parolei hash:
file_key = str (argv [2]) hash = open (("desktop / safesetup /" + file_key), ("r +")). read ()
A doua secțiune a fișierului de criptare compară hashurile, determină veridicitatea comparației și folosește biblioteca python AESCrypt pentru a cripta sau decripta fișierul ales. Acesta este un fragment destul de mare de cod, dar îl voi defalca:
if (parolă == hash): print ("Parolă acceptată")
bufferSize = 64 * 1024
operație = str (intrare („Preluați sau criptați fișiere? (r sau e)”))
if (operație == 'r'):
file_name = str (input ("Fișier de recuperat:"))
pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, parola, bufferSize)
os.remove ((nume_fișier + ".aes"))
elif (operație == 'e'):
file_name = str (input ("Fișier de criptat:"))
pyAesCrypt.encryptFile (file_name, (file_name + ".aes"), parolă, bufferSize)
os.remove (file_name)
altceva:
print („Eroare: introducere incorectă”)
altceva:
print („Acces refuzat”)
Prima instrucțiune if determină dacă parolele hash se potrivesc. Dacă o fac, se va întreba dacă doriți să criptați fișiere sau să recuperați fișiere criptate. În funcție de datele introduse, acesta va cripta sau va decripta fișierul furnizat. Când vi se solicită să dați numele fișierului, asigurați-vă că specificați calea, cu excepția cazului în care fișierul se află în același director cu programul python. Programul șterge fișierul în starea sa anterioară, înlocuindu-l cu un fișier.aes criptat sau decriptându-l și înlocuindu-l cu fișierul original.
În viitor, aș putea actualiza acest lucru pentru a include recunoașterea facială folosind biblioteca Python OpenCV, dar pentru moment parolele vor trebui să fie suficiente.
Pasul 3: Funcționarea fișierelor
Pentru a rula fișierul de configurare, urmați acești pași:
1. Tastați terminalul:
parola python3 directory / setupname.py (înlocuind directorul, setupname și parola cu valorile lor respective)
2. Terminalul va afișa numărul fișierului. Ține asta.
Pentru a rula programul de criptare / decriptare, urmați acești pași:
1. Tastați terminalul:
python3 directory / filename.py password file file (înlocuind directorul, numele fișierului, parola și numărul fișierului cu valorile lor respective)
2. Terminalul va accepta sau va respinge parola. Dacă este respins, încercați din nou și asigurați-vă că introduceți valorile corecte. După acordarea accesului, terminalul vă va întreba dacă doriți să criptați un fișier sau să recuperați un fișier. Pentru a cripta un fișier, tastați e și pentru a prelua un fișier criptat, tastați r.
3. Vi se va cere să furnizați numele fișierului. Nu uitați să furnizați directorul fișierului, precum și numele, precum și extensia de fișier. Cu toate acestea, dacă decriptați un fișier, nu tastați partea.aes a extensiei, deoarece codul contează acest lucru.
4. Programul apoi criptează sau decriptează fișierul furnizat și șterge fișierul în starea sa anterioară (păstrând fișierul criptat sau decriptat).
Voila! Vă mulțumim că ați ajuns până aici în modul instructiv, știu că citirea tutorialelor de cod nu este cel mai distractiv lucru. Fișierele Python sunt incluse în acest pas, pentru aceia dintre voi care doresc să facă asta. Încă o dată, mulțumesc pentru lectură și vă doresc mult noroc în viitoarele dvs. eforturi de codificare.
Recomandat:
Cum să faceți primul dvs. software simplu folosind Python: 6 pași
Cum să vă faceți primul software simplu folosind Python: Bună, bine ați venit la acest Instructables. Aici voi spune cum să vă creați propriul software. Da, dacă aveți o idee … dar știți să implementați sau sunteți interesat să creați lucruri noi, atunci este pentru voi …… Condiție preliminară: ar trebui să aveți cunoștințe de bază despre P
Cum să descărcați software gratuit ca student ISU (Microsoft, Adobe și software de securitate: 24 de pași
Cum să descărcați software-ul gratuit ca student ISU (Microsoft, Adobe și software de securitate: pentru Adobe: treceți la pasul 1. Pentru Microsoft: treceți la pasul 8. Pentru securitate: treceți la pasul 12. Pentru Azure: treceți la pasul 16
Creați criptare / decriptare de mesaje simplă utilizând Notepad: 5 pași
Creați criptare / decriptare de mesaje simple utilizând Notepad: Bună ziua cu această aplicație HTML simplă puteți cripta și decripta mesajul dvs. prin parolă. În primul rând vă voi arăta cum să-l creați și apoi vă voi arăta cum să-l utilizați. Să începem
Convertiți un Memory Stick vechi într-o bancă de date cu criptare de nivel guvernamental: 4 pași
Convertiți un Memory Stick vechi într-o bancă de date cu criptare la nivel guvernamental: Aveți un Memory Stick vechi? Aveți fișiere valoroase pe care trebuie să le protejați? Aflați cum să vă protejați fișierele mai bine decât o simplă arhivă RAR cu parolă; pentru că în această epocă modernă, oricine are un PC bun îl poate decripta în mai puțin de o zi. Folosesc o memorie de 32 MB
Parolați o unitate USB fără criptare cu un fișier lot: 8 pași
Parolați o unitate USB fără criptare cu un fișier batch: un program care nu va permite utilizatorului să pătrundă pe o unitate fără o parolă și va afișa un fișier proprietar pe care îl puteți schimba după cum vă va arăta cum să utilizați cu ușurință programul pe care l-am făcut