Kazalo:
- 1. korak: Pisanje namestitvene datoteke
- Korak: Datoteka za šifriranje/dešifriranje
- 3. korak: delovanje datotek
Video: Programska oprema za šifriranje/dešifriranje varnosti Python: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
V tem navodilu vam bom pokazal, kako lahko z nekaj preprostim Pythonom zaščitite svoje datoteke z uporabo industrijskega standarda AES.
Zahteve:
- Python 3.7
- knjižnica PyAesCrypt
- knjižnica hashlib
Če teh knjižnic nimate, jih lahko preprosto namestite tako, da vnesete:
pip3 namestite hashlib
pip3 namestite PyAesCrypt
v terminalu (ali CMD)
Morali bi že imeti te:
- naključna knjižnica
- knjižnica os
- sistemska knjižnica
Uporabljam OS X, vendar to ne bi smelo biti preveč pomembno, razen smeri poševnic v datotekah (OS X: /, Windows: )
Prosimo, upoštevajte: Zaradi nekaterih napak se vdolbine v kodi iz nekega razloga ne prikažejo. Posledično v prikazani kodi ne bo vdolbin, vendar so prisotne v datotekah Python, ki sem jih priložil na koncu, in v priloženih slikah. Kode ne vzemite neposredno iz prikazanega besedila, ker zaradi pomanjkanja vdolbin ne bo delovalo
Če imate nameščene vse odvisnosti, pojdimo na 1. korak.
1. korak: Pisanje namestitvene datoteke
Eden od dejavnikov, ki to naredijo tako varno, je uporaba razpršilcev za preverjanje gesla. Namestitvena datoteka (kličem svojo setupsafe.py) bo:
- Ustvarite mapo in lažne datoteke za geslo
- Nastavite geslo
- Nastavite številko datoteke
- Razpršite geslo
Najprej bomo uvozili naše odvisnosti:
iz sys uvoza *
uvoz os
uvoz naključno
uvoz hashlib
Nato bomo ustvarili mapo za shranjevanje gesla gesla in lažnih datotek:
poskusite: če ne os.path.exists ('namizje/varna nastavitev'):
os.mkdir ('namizje/varna nastavitev/')
razen OSError:
print ("Napaka pri ustvarjanju mape")
Ta koda bo ustvarila mapo, imenovano safesetup (razen če že obstaja).
Po tem bomo nastavili geslo in ustvarili naključno število med 1 in 100 za naš način krmarjenja po lažnih datotekah:
globalno geslo = geslo = argv [1].encode ('utf-8')
n = random.randint (1, 101)
Zdaj, ko imamo geslo in številko datoteke, bomo v varni nastavitvi ustvarili 99 lažnih datotek in eno pravo datoteko, ki bo vsebovala naš geslo gesla:
za x v razponu (101): if (x! = n):
f = odprto (("namizje/safesetup/"+str (x)), "w+")
f.close ()
drugače:
geslo = hashlib.sha256 (geslo).hexdigest ()
f = odprto (("namizje/safesetup/"+str (x)), "w+")
f.write (geslo)
f.close ()
natisni (n)
Prava datoteka se imenuje ne glede na celo število n. Ta datoteka vsebuje naše geslo, potem ko je razpršeno z algoritmom sha256 (ta algoritem razpršitve se pogosto uporablja v kriptovalutah, predvsem v bitcoinu).
Zapomnite si, kaj je n (natisnjeno bo v konzoli), saj je enako pomembno kot geslo.
To je vse, kar potrebujemo za naš namestitveni program, zato bomo prešli na program za šifriranje/dešifriranje.
Korak: Datoteka za šifriranje/dešifriranje
Oddelek za nastavitev glavne datoteke uvozi odvisnosti, razprši vneseno geslo in z uporabo vnesene številke datoteke prikliče pravo geslo gesla.
Prvič, odvisnosti:
iz sys import *import os
uvoz pyAesCrypt
uvoz hashlib
Nato razpršitev vnesenega gesla:
geslo = argv [1].encode ('utf-8') geslo = hashlib.sha256 (geslo).hexdigest ()
Nazadnje, iskanje zgoščenega gesla:
file_key = str (argv [2]) hash = open (("namizje/safesetup/" + file_key), ("r +")). read ()
Drugi razdelek šifrirne datoteke primerja razpršitve, določa resničnost primerjave in uporablja knjižnico python AESCrypt za šifriranje ali dešifriranje vaše izbrane datoteke. To je precej velik del kode, vendar ga bom razčlenil:
if (geslo == hash): print ("Geslo sprejeto")
bufferSize = 64 * 1024
operation = str (input ("Ali pridobivate ali šifrirate datoteke? (r ali e)"))
if (operacija == 'r'):
file_name = str (input ("Datoteka za pridobivanje:"))
pyAesCrypt.decryptFile ((ime_datoteke + ".aes"), ime_datoteke, geslo, bufferSize)
os.remove ((ime_datoteke + ".aes"))
elif (operacija == 'e'):
file_name = str (input ("Datoteka za šifriranje:"))
pyAesCrypt.encryptFile (ime_datoteke, (ime_datoteke + ".aes"), geslo, velikost medpomnilnika)
os.remove (ime_datoteke)
drugače:
print ("Napaka: napačen vnos")
drugače:
print ("Dostop zavrnjen")
Prvi stavek if določa, ali se zgoščena gesla ujemajo. Če se to zgodi, vas nato vpraša, ali želite šifrirati datoteke ali pridobiti šifrirane datoteke. Odvisno od vnosa bo šifriral ali dešifriral priloženo datoteko. Ko boste pozvani, da navedete ime datoteke, ne pozabite določiti poti, razen če je datoteka v istem imeniku kot program python. Program izbriše datoteko v prejšnjem stanju in jo nadomesti s šifrirano datoteko.aes ali pa jo dešifrira in zamenja z izvirno datoteko.
V prihodnosti bi to lahko posodobil tako, da bo vključeval prepoznavanje obrazov z uporabo knjižnice Python OpenCV, vendar bodo za zdaj morala zadostovati gesla.
3. korak: delovanje datotek
Če želite zagnati namestitveno datoteko, sledite tem korakom:
1. Vnesite terminal:
imenik/geslo za namestitev python3/setupname.py (zamenjava imenika, nastavitvenega imena in gesla z ustreznimi vrednostmi)
2. Terminal bo izpisal številko vaše datoteke. Obdrži to.
Če želite zagnati program za šifriranje/dešifriranje, sledite tem korakom:
1. Vnesite terminal:
imenik/ime datoteke python3 številka datoteke geslo (imenik, ime datoteke, geslo in številka datoteke nadomestite z ustreznimi vrednostmi)
2. Terminal bo nato sprejel ali zavrnil vaše geslo. Če je zavrnjeno, poskusite znova in se prepričajte, da vnesete prave vrednosti. Ko je dostop odobren, vas bo terminal vprašal, ali želite datoteko šifrirati ali datoteko pridobiti. Za šifriranje datoteke vnesite e in pridobite šifrirano datoteko r.
3. Nato boste morali vnesti ime datoteke. Ne pozabite navesti imenika datoteke, imena in razširitve datoteke. Če pa dešifrirate datoteko, ne vnesite dela razširitve.aes, saj to upošteva koda.
4. Program nato šifrira ali dešifrira priloženo datoteko in datoteko izbriše v prejšnjem stanju (ohrani šifrirano ali dešifrirano datoteko).
Voila! Hvala, ker ste tako daleč prišli do pouka, vem, da branje vadnic s kodo ni najbolj zabavna stvar. Datoteke python so priložene temu koraku, za tiste, ki želite to poskusiti. Še enkrat hvala za branje in želim vam vso srečo pri prihodnjih prizadevanjih za kodiranje.
Priporočena:
Programska oprema za simulacijo LED kocke: 5 korakov
Programska oprema za simulacijo LED kock: skoraj sem končal z izdelavo LED kocke 8x8x8 in z njo je prišla ta programska oprema za računalnik! Pomaga vam pri ustvarjanju animacij in jih simulira na 2D zaslonu, preden se naložijo na 3D. Zaenkrat še ni podpore za komunikacijo prek
Namestitev sistema Windows na MacBook (programska oprema Apple): 8 korakov
Namestitev operacijskega sistema Windows na MacBook (programska oprema Apple): Ena od prednosti lastništva MacBook -a je, da vam omogoča izbiro med operacijskim sistemom Mac OS ali Windows (če je nameščen). To uporabniku omogoča zagon določenih aplikacij ali iger, ki so samo v operacijskem sistemu Windows. Ta navodila bodo
RF -oddajnik Flysky, ki se napaja prek USB -ja + žična signalna povezava z računalnikom + brezplačna programska oprema simulatorja: 6 korakov
Oddajnik Flysky RF, ki se napaja prek povezave USB + žični signal z računalnikom + brezplačna programska oprema simulatorja: Če ste podobni meni, boste radi preizkusili svoj RF oddajnik in se naučili, preden strmoglavite svoje drago RF letalo/brezpilotni letalnik. To vam bo prineslo dodatno zabavo, hkrati pa prihranilo na tone denarja in časa. Če želite to narediti, je najboljši način, da svoj RF oddajnik povežete z vami
Preprost Synth - krmilnik Axoloti in programska oprema: 3 koraki
Simple Synth - krmilnik Axoloti in programska oprema Uvod: Axoloti je vsestranska zvočna plošča, ki jo je mogoče programirati podobno kot Arduino, samo z zvočnim razvojnim okoljem na vozliščih. Popravki, ki so tam programirani, se naložijo, ko so končani, nato pa se samodejno izvajajo na plošči. Ima več
Ustvarite preprosto šifriranje/dešifriranje sporočil z uporabo beležnice: 5 korakov
Ustvarite preprosto šifriranje/dešifriranje sporočila z uporabo Beležnice: Pozdravljeni s to preprosto aplikacijo HTML, lahko šifrirate in dešifrirate svoje sporočilo z geslom. Najprej vam bom pokazal, kako ga ustvariti, nato pa vam bom pokazal, kako ga uporabljati. Začnimo