Cuprins:

Software de criptare / decriptare Python Security: 3 pași
Software de criptare / decriptare Python Security: 3 pași

Video: Software de criptare / decriptare Python Security: 3 pași

Video: Software de criptare / decriptare Python Security: 3 pași
Video: 3 Tipuri de Atacuri Cibernetice din 2024 | Cursuri IT cu Mentorat 2024, Noiembrie
Anonim
Software de criptare / decriptare Python Security
Software de criptare / decriptare Python Security
Software de criptare / decriptare Python Security
Software de criptare / decriptare Python Security

Î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

Scrierea fișierului de configurare
Scrierea fișierului de configurare
Scrierea fișierului de configurare
Scrierea fișierului de configurare
Scrierea fișierului de configurare
Scrierea fișierului de configurare
Scrierea fișierului de configurare
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

Fișierul de criptare / decriptare
Fișierul de criptare / decriptare
Fișierul de criptare / decriptare
Fișierul de criptare / decriptare
Fișierul de criptare / decriptare
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: