Sadržaj:

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

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

Video: Python softver za šifriranje/dešifriranje sigurnosti: 3 koraka
Video: Python! Extracting Text from PDFs 2024, Novembar
Anonim
Python softver za šifriranje/dešifriranje sigurnosti
Python softver za šifriranje/dešifriranje sigurnosti
Python softver za šifriranje/dešifriranje sigurnosti
Python softver za šifriranje/dešifriranje sigurnosti

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

Zahtjevi:

- Python 3.7

- PyAesCrypt biblioteka

- biblioteka hashlib

Ako nemate ove biblioteke, možete ih lako instalirati upisivanjem:

pip3 install hashlib

pip3 instalirajte PyAesCrypt

u terminalu (ili CMD)

Trebali biste već imati ove:

- nasumična biblioteka

- biblioteka os

- biblioteka sistema

Koristim OS X, ali to ne bi trebalo biti previše važno, osim smjera kosih crta u putanjama 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 na priloženim slikama. Samo nemojte uzimati kôd izravno iz prikazanog teksta jer neće raditi zbog nedostatka uvlaka

Ako imate instalirane sve ovisnosti, idemo na korak 1.

Korak 1: Zapisivanje instalacijske datoteke

Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje
Pisanje datoteke za postavljanje

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

- Kreirajte mapu i lažne datoteke za lozinku

- Postavite lozinku

- Postavite broj datoteke

- Raspršite lozinku

Prvo ćemo uvesti naše ovisnosti:

iz sys importa *

import os

uvozi nasumično

import hashlib

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

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

os.mkdir ('desktop/safesetup/')

osim OSError:

print ("Greška pri stvaranju foldera")

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 sigurnog postavljanja, te jednu stvarnu datoteku koja će sadržavati naš hash 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 se naziva bez obzira na cijeli broj n. Ova datoteka sadrži našu lozinku, nakon što je heširana pomoću algoritma sha256 (ovaj algoritam raspršivanja se široko koristi u kriptovalutama, ponajviše u bitkoinu).

Upamtite šta je n (bit će ispisano u konzoli), jer je jednako važno kao i lozinka.

To je sve što nam je potrebno za naš program za postavljanje, pa ćemo sada preć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

Odeljak za podešavanje glavne datoteke uvozi zavisnosti, raspršuje unetu lozinku i preuzima pravi heš lozinke pomoću unetog broja datoteke.

Prvo, zavisnosti:

iz sys import *import os

import pyAesCrypt

import hashlib

Zatim, heširanje unesene lozinke:

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

Konačno, dohvaćanje heširane lozinke:

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

Drugi dio datoteke za šifriranje uspoređuje heševe, utvrđuje istinitost usporedbe i koristi AESCrypt python biblioteku za šifriranje ili dešifriranje datoteke po vašem izboru. Ovo je prilično veliki dio koda, ali razložit ću ga:

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

bufferSize = 64 * 1024

operation = str (input ("Da li preuzimate 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 ((ime_datoteke + ".aes"))

elif (operacija == 'e'):

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

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

os.remove (ime_datoteke)

drugo:

print ("Greška: Neispravan unos")

drugo:

print ("Pristup odbijen")

Prva naredba if određuje da li se heširane lozinke podudaraju. Ako to učine, onda se nastavlja s pitanjem želite li šifrirati datoteke ili dohvatiti šifrirane datoteke. Ovisno o vašem unosu, datoteka će šifrirati ili dešifrirati dostavljenu datoteku. Kada 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 originalnom datotekom.

U budućnosti bih ovo mogao ažurirati tako da uključuje prepoznavanje lica pomoću Python OpenCV biblioteke, 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 lozinka (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 direktorij/ime datoteke.py lozinka broj datoteke (zamjena direktorija, naziva datoteke, lozinke i broja datoteke njihovim odgovarajućim vrijednostima)

2. Terminal će tada prihvatiti ili odbiti vašu lozinku. Ako je odbijeno, pokušajte ponovo 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 preuzimanje šifrirane datoteke upišite r.

3. Tada će se od vas tražiti da navedete naziv datoteke. Ne zaboravite navesti direktorij datoteke, kao i naziv, kao i ekstenziju datoteke. Međutim, ako dešifrirate datoteku, nemojte upisivati .aes dio ekstenzije jer kôd to objašnjava.

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 vam što ste ovo učinili ovako poučnim, znam da čitanje kodova nije najzabavnija stvar. Python datoteke su priložene 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 nastojanjima u kodiranju.

Preporučuje se: