Sadržaj:
- Korak 1: Zapisivanje instalacijske datoteke
- Korak 2: Datoteka za šifriranje/dešifriranje
- Korak 3: Rad datoteka
Video: Python softver za šifriranje/dešifriranje sigurnosti: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
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
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
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:
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. Radi tako što premješta slova abecede kako bi stvorio potpuno novu abecedu (ABCDEF bi mogao premjestiti preko 4 slova i postati EFGHIJ). Cezar C
Talos, čuvanje sigurnosti tokom putovanja: 5 koraka
Talos, čuvanje sigurnosti tokom putovanja: Biti žrtva uznemiravanja dok putujete na posao prilično je uobičajena stvar za mnoge ljude, posebno za žene. Bez obzira na zemlju, korišćenje javnog prevoza često je jednako znanju da vas mogu seksualno uznemiravati ili čak pratiti dok hodate kući. U tim
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: idite na korak 1. Za Microsoft: idite na korak 8. Za sigurnost: idite na korak 12. Za Azure: idite na korak 16
Napravite jednostavno šifriranje/dešifriranje poruka pomoću bilježnice: 5 koraka
Napravite 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
Arduino LCD sistem upozorenja o požarnoj sigurnosti: 9 koraka
Arduino LCD sistem upozorenja o požarnoj sigurnosti: Ovo je studentski projekt koji kombinira funkcije LCD ekrana, zujalice, RGB i DHT senzora temperature. Trenutna temperatura okoline se prikazuje i ažurira na LCD ekranu. Poruka odštampana na LCD ekranu informiše