Sadržaj:

Python sigurnosni softver za šifriranje/dešifriranje: 3 koraka
Python sigurnosni softver za šifriranje/dešifriranje: 3 koraka

Video: Python sigurnosni softver za šifriranje/dešifriranje: 3 koraka

Video: Python sigurnosni softver za šifriranje/dešifriranje: 3 koraka
Video: CS50 2013 - Week 9, continued 2024, Studeni
Anonim
Python sigurnosni softver za šifriranje/dešifriranje
Python sigurnosni softver za šifriranje/dešifriranje
Python sigurnosni softver za šifriranje/dešifriranje
Python sigurnosni softver za šifriranje/dešifriranje

U ovom Instructableu pokazat ću vam kako pomoću jednostavnog Pythona možete zaštititi svoje datoteke pomoću industrijskog standarda AES.

Zahtjevi:

- Python 3.7

- Knjižnica PyAesCrypt

- biblioteka hashlib

Ako nemate ove knjižnice, možete jednostavno instalirati upisivanjem:

pip3 instalirajte hashlib

pip3 instalirajte PyAesCrypt

u terminalu (ili CMD)

Trebali biste već imati ove:

- slučajna biblioteka

- knjižnica os

- knjižnica sustava

Koristim OS X, ali to ne bi trebalo biti previše važno, osim smjera kosih crta na stazama datoteka (OS X: /, Windows:)

Napomena: Zbog nekih grešaka, udubljenja u kodu se iz nekog razloga ne prikazuju. Posljedično neće biti uvlačenja u prikazanom kodu, međutim oni su prisutni u Python datotekama koje sam priložio na kraju, te u priloženim slikama. Samo nemojte uzeti kôd izravno iz prikazanog teksta jer neće raditi zbog nedostatka uvlaka

Ako imate instalirane sve ovisnosti, prijeđimo na korak 1.

Korak 1: Zapisivanje instalacijske datoteke

Pisanje instalacijske datoteke
Pisanje instalacijske datoteke
Pisanje instalacijske datoteke
Pisanje instalacijske datoteke
Pisanje instalacijske datoteke
Pisanje instalacijske datoteke
Pisanje instalacijske datoteke
Pisanje instalacijske datoteke

Jedan od čimbenika koji ovo čini tako sigurnim je korištenje raspršivača za provjeru lozinke. Datoteka za postavljanje (zovem svoju setupsafe.py) bit će:

- Stvorite mapu i lažne datoteke za lozinku

- Postavite lozinku

- Postavite broj datoteke

- Raspršite lozinku

Prvo ćemo uvesti naše ovisnosti:

iz sys uvoza *

uvoz os

uvozi nasumično

uvoziti hashlib

Zatim ćemo stvoriti mapu za smještaj hash lozinke i lažnih datoteka:

pokušajte: ako ne os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

osim OSError:

print ("Pogreška pri stvaranju mape")

Ovaj kôd će stvoriti mapu pod nazivom safesetup (osim ako već postoji).

Nakon toga ćemo postaviti lozinku i generirati slučajni broj između 1 i 100 kao naš način kretanja po lažnim datotekama:

globalna lozinka lozinka = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Sada kada imamo svoju lozinku i broj datoteke, stvorit ćemo 99 lažnih datoteka unutar sigurne postavke i jednu pravu datoteku koja će sadržavati naš raspršivač lozinke:

za x u rasponu (101): if (x! = n):

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

f.close ()

drugo:

lozinka = hashlib.sha256 (lozinka).hexdigest ()

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

f.write (lozinka)

f.close ()

ispis (n)

Prava datoteka naziva se bez obzira na cijeli broj n. Ova datoteka sadrži našu lozinku, nakon što je raspršena pomoću algoritma sha256 (ovaj algoritam raspršivanja široko se koristi u kriptovalutama, ponajviše u bitcoinu).

Zapamtite što je n (bit će ispisano na konzoli), jer je jednako važno kao i lozinka.

To je sve što nam je potrebno za naš program za postavljanje, pa ćemo sada prijeći na program za šifriranje/dešifriranje.

Korak 2: Datoteka za šifriranje/dešifriranje

Datoteka za šifriranje/dešifriranje
Datoteka za šifriranje/dešifriranje
Datoteka za šifriranje/dešifriranje
Datoteka za šifriranje/dešifriranje
Datoteka za šifriranje/dešifriranje
Datoteka za šifriranje/dešifriranje

Odjeljak za postavljanje glavne datoteke uvozi ovisnosti, raspršuje unesenu lozinku i dohvaća stvarni raspršivač lozinke pomoću unesenog broja datoteke.

Prvo, ovisnosti:

iz sys import *import os

uvoz pyAesCrypt

uvoziti hashlib

Zatim, raspršivanje unesene lozinke:

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

Konačno, dohvaćanje raspršene lozinke:

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

Drugi odjeljak datoteke za šifriranje uspoređuje raspršivanja, utvrđuje istinitost usporedbe i koristi knjižnicu Python AESCrypt za šifriranje ili dešifriranje datoteke po vašem izboru. Ovo je prilično velik dio koda, ali razložit ću ga:

if (lozinka == hash): print ("Lozinka prihvaćena")

veličina međuspremnika = 64 * 1024

operation = str (input ("Dohvaćate li ili šifrirate datoteke? (r ili e)"))

if (operacija == 'r'):

file_name = str (input ("Datoteka za preuzimanje:"))

pyAesCrypt.decryptFile ((naziv_datoteke + ".aes"), naziv_datoteke, lozinka, veličina međuspremnika)

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

elif (operacija == 'e'):

file_name = str (input ("Datoteka za šifriranje:"))

pyAesCrypt.encryptFile (naziv_datoteke, (naziv_datoteke + ".aes"), lozinka, veličina međuspremnika)

os.remove (naziv_datoteke)

drugo:

print ("Pogreška: pogrešan unos")

drugo:

print ("Pristup odbijen")

Prva naredba if određuje podudaraju li se raspršene lozinke. Ako to učine, tada se nastavlja pitati želite li šifrirati datoteke ili dohvatiti šifrirane datoteke. Ovisno o vašem unosu, datoteka će šifrirati ili dešifrirati priloženu datoteku. Kad se od vas zatraži da date naziv datoteke, svakako navedite putanju osim ako se datoteka nalazi u istom direktoriju kao i program python. Program briše datoteku u prethodnom stanju, zamjenjujući je šifriranom.aes datotekom ili je dešifrirajući zamjenjuje izvornom datotekom.

U budućnosti bih ovo mogao ažurirati tako da uključuje prepoznavanje lica pomoću knjižnice Python OpenCV, ali za sada će lozinke morati biti dovoljne.

Korak 3: Rad datoteka

Da biste pokrenuli instalacijsku datoteku, slijedite ove korake:

1. Upišite terminal:

python3 imenik/setupname.py zaporka (zamjena direktorija, naziva postavljanja i lozinke njihovim vrijednostima)

2. Terminal će prikazati broj vaše datoteke. Zadrži ovo.

Da biste pokrenuli program za šifriranje/dešifriranje, slijedite ove korake:

1. Upišite terminal:

python3 imenik/ime datoteke.py lozinka broj datoteke (zamjena direktorija, naziva datoteke, lozinke i broja datoteke njihovim vrijednostima)

2. Terminal će tada prihvatiti ili odbiti vašu lozinku. Ako je odbijeno, pokušajte ponovno i provjerite jeste li unijeli prave vrijednosti. Nakon što je pristup odobren, terminal će vas pitati želite li šifrirati datoteku ili dohvatiti datoteku. Za šifriranje datoteke upišite e, a za dohvaćanje šifrirane datoteke upišite r.

3. Tada će se od vas tražiti da unesete naziv datoteke. Ne zaboravite navesti imenik datoteke, kao i naziv, kao i nastavak datoteke. Međutim, ako dešifrirate datoteku, nemojte upisivati .aes dio ekstenzije jer to računa i kôd.

4. Program zatim šifrira ili dešifrira dostavljenu datoteku i briše je u prethodnom stanju (zadržavajući šifriranu ili dešifriranu datoteku).

Voila! Hvala što ste ovo učinili ovako poučnim, znam da čitanje kodova nije najzabavnija stvar. Python datoteke priložene su u ovom koraku za one od vas koji žele ovo isprobati. Još jednom, hvala na čitanju i želim vam puno sreće u budućim pothvatima kodiranja.

Preporučeni: