Sadržaj:
- Korak 1: Zapisivanje instalacijske datoteke
- Korak 2: Datoteka za šifriranje/dešifriranje
- Korak 3: Rad datoteka
Video: Python sigurnosni softver za šifriranje/dešifriranje: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
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
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
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:
Softver za simulaciju LED kocke: 5 koraka
Softver za simulaciju LED kocke: Skoro sam završio s izgradnjom svoje LED kocke 8x8x8, a s njom je došao i ovaj softver za računalo! Pomaže vam u stvaranju animacija i simulira ih na 2D zaslonu prije nego što se učitaju na 3D. Nema podrške (još) za komunikaciju putem
Cezarov program za šifriranje u Pythonu: 4 koraka
Program Caesar Cipher u Pythonu: Caesar Cipher je drevna i široko korištena šifra koja se lako šifrira i dešifrira. Djeluje tako da premjesti slova abecede kako bi stvorio potpuno novu abecedu (ABCDEF bi mogao premjestiti preko 4 slova i postati EFGHIJ). Cezar C
Kako preuzeti besplatni softver kao student ISU -a (Microsoft, Adobe i sigurnosni softver: 24 koraka)
Kako preuzeti besplatni softver kao student ISU -a (Microsoft, Adobe i sigurnosni softver: Za Adobe: prijeđite na korak 1. Za Microsoft: idite na korak 8. Za sigurnost: idite na korak 12. Za Azure: idite na korak 16
Izradite jednostavno šifriranje/dešifriranje poruka pomoću bilježnice: 5 koraka
Izradite jednostavno šifriranje/dešifriranje poruka pomoću bilježnice: Pozdrav, s ovom jednostavnom HTML aplikacijom možete šifrirati i dešifrirati svoju poruku lozinkom. Prije svega ću vam pokazati kako ga stvoriti, a zatim ću vam pokazati kako ga koristiti. Počnimo
Šifriranje USB pogona: 7 koraka
Šifriranje USB pogona: Provest ću vas kroz korake potrebne za šifriranje USB pogona pomoću besplatnog alata za šifriranje TrueCrypt. U ovom uputstvu za primjer ću koristiti sustav Windows XP, ali TrueCrypt će se također izvoditi na Linuxu i OS X