Satura rādītājs:

Python drošības šifrēšanas/atšifrēšanas programmatūra: 3 soļi
Python drošības šifrēšanas/atšifrēšanas programmatūra: 3 soļi

Video: Python drošības šifrēšanas/atšifrēšanas programmatūra: 3 soļi

Video: Python drošības šifrēšanas/atšifrēšanas programmatūra: 3 soļi
Video: CS50 2015 - Week 7 2024, Novembris
Anonim
Python drošības šifrēšanas/atšifrēšanas programmatūra
Python drošības šifrēšanas/atšifrēšanas programmatūra
Python drošības šifrēšanas/atšifrēšanas programmatūra
Python drošības šifrēšanas/atšifrēšanas programmatūra

Šajā pamācībā es jums parādīšu, kā, izmantojot vienkāršu Python, jūs varat saglabāt savus failus drošus, izmantojot nozares standarta AES.

Prasības:

- Python 3.7

- PyAesCrypt bibliotēka

- hashlib bibliotēka

Ja jums nav šo bibliotēku, varat viegli instalēt, ierakstot:

pip3 instalējiet hashlib

pip3 instalējiet PyAesCrypt

terminālī (vai CMD)

Jums jau vajadzētu būt šādiem:

- izlases bibliotēka

- OS bibliotēka

- sistēmas bibliotēka

Es izmantoju OS X, taču tam nevajadzētu būt pārāk nozīmīgam, izņemot slīpsvītru virzienu failu ceļos (OS X: /, Windows:)

Lūdzu, ņemiet vērā: dažu kļūmju dēļ koda ievilkumi kāda iemesla dēļ netiek rādīti. Līdz ar to parādītajā kodā nebūs ievilkumu, tomēr tie ir atrodami Python failos, kurus esmu pievienojis beigās, un pievienotajos attēlos. Vienkārši neņemiet kodu tieši no parādītā teksta, jo tas nedarbosies ievilkumu trūkuma dēļ

Ja esat instalējis visas atkarības, pārejam pie 1. darbības.

1. darbība: iestatīšanas faila rakstīšana

Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana
Uzstādīšanas faila rakstīšana

Viens no faktoriem, kas padara to tik drošu, ir hash izmantošana paroles pārbaudei. Iestatīšanas fails (es zvanu raktuvei setupsafe.py) tiks nosūtīts uz:

- Izveidojiet mapi un fiktīvus failus parolei

- Iestatiet paroli

- Iestatiet faila numuru

- sajauciet paroli

Pirmkārt, mēs importēsim mūsu atkarības:

no sys importa *

importēt OS

importēt nejauši

importēt hashlib

Tālāk mēs izveidosim mapi paroles jaukšanai un fiktīvajiem failiem:

mēģiniet: ja nav os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

izņemot OS kļūdu:

drukāt ("Kļūda, izveidojot mapi")

Šis kods izveidos mapi ar nosaukumu safesetup (ja vien tā jau nav).

Pēc tam mēs iestatīsim paroli un ģenerēsim nejaušu skaitli no 1 līdz 100, lai pārvietotos fiktīvajos failos:

globālā parole parole = argv [1].encode ('utf-8')

n = nejaušība. izgriezums (1, 101)

Tagad, kad mums ir sava parole un faila numurs, mēs drošības iestatījumos izveidosim 99 fiktīvus failus un vienu reālu failu, kurā būs mūsu paroles jaukšana:

x diapazonā (101): ja (x! = n):

f = atvērts (("desktop/safesetup/"+str (x)), "w+")

f. tuvu ()

cits:

parole = hashlib.sha256 (parole).hexdigest ()

f = atvērts (("desktop/safesetup/"+str (x)), "w+")

f. rakstīt (parole)

f. tuvu ()

drukāt (n)

Reālo failu sauc par veselu skaitli n. Šis fails satur mūsu paroli pēc sajaukšanas, izmantojot algoritmu sha256 (šis jaukšanas algoritms tiek plaši izmantots kriptovalūtās, jo īpaši Bitcoin).

Atcerieties, kas ir n (tas tiks izdrukāts konsolē), jo tas ir tikpat svarīgs kā parole.

Tas ir viss, kas mums nepieciešams mūsu iestatīšanas programmai, tāpēc tagad pāriesim pie šifrēšanas/atšifrēšanas programmas.

2. darbība: šifrēšanas/atšifrēšanas fails

Šifrēšanas/atšifrēšanas fails
Šifrēšanas/atšifrēšanas fails
Šifrēšanas/atšifrēšanas fails
Šifrēšanas/atšifrēšanas fails
Šifrēšanas/atšifrēšanas fails
Šifrēšanas/atšifrēšanas fails

Galvenā faila iestatīšanas sadaļa importē atkarības, sajauc ievadīto paroli un izgūst reālo paroles jaukšanu, izmantojot ievadīto faila numuru.

Pirmkārt, atkarības:

no sys importēt *importēt os

importēt pyAesCrypt

importēt hashlib

Tālāk ievadītās paroles jaukšana:

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

Visbeidzot, jaukta paroles izgūšana:

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

Šifrēšanas faila otrā sadaļa salīdzina jaucējkrānus, nosaka salīdzinājuma patiesumu un izmanto AESCrypt python bibliotēku, lai šifrētu vai atšifrētu jūsu izvēlēto failu. Šī ir diezgan liela koda daļa, bet es to sadalīšu:

ja (parole == jauc): print ("Parole pieņemta")

bufferSize = 64 * 1024

operācija = str (ievade ("Vai jūs izgūstat vai šifrējat failus? (r vai e)"))

ja (darbība == 'r'):

file_name = str (ievade ("Ielādējamais fails:"))

pyAesCrypt.decryptFile ((faila_nosaukums + ".aes"), faila_nosaukums, parole, buferaizmērs)

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

elif (darbība == 'e'):

file_name = str (ievade ("Šifrējamais fails:"))

pyAesCrypt.encryptFile (faila_nosaukums, (faila_nosaukums + ".aes"), parole, buferaizmērs)

os.remove (faila_nosaukums)

cits:

drukāt ("Kļūda: nepareiza ievade")

cits:

drukāt ("Piekļuve liegta")

Pirmais if paziņojums nosaka, vai sajauktas paroles atbilst. Ja viņi to dara, tad tiek jautāts, vai vēlaties šifrēt failus vai izgūt šifrētus failus. Atkarībā no jūsu ievadītās informācijas tas vai nu šifrē, vai atšifrē piedāvāto failu. Kad tiek prasīts norādīt faila nosaukumu, noteikti norādiet ceļu, ja vien fails nav tajā pašā direktorijā kā python programma. Programma izdzēš failu iepriekšējā stāvoklī, aizstājot to ar šifrētu.aes failu vai atšifrējot to un aizstājot to ar sākotnējo failu.

Nākotnē es varētu to atjaunināt, iekļaujot sejas atpazīšanu, izmantojot Python OpenCV bibliotēku, taču pagaidām pietiks ar parolēm.

3. darbība: failu darbība

Lai palaistu iestatīšanas failu, rīkojieties šādi:

1. Ievadiet termināli:

python3 direktorija/setupname.py parole (nomainot direktoriju, iestatīšanas nosaukumu un paroli ar attiecīgajām vērtībām)

2. Terminālis izvadīs jūsu faila numuru. Saglabājiet šo.

Lai palaistu šifrēšanas/atšifrēšanas programmu, rīkojieties šādi:

1. Ievadiet termināli:

python3 direktorijs/faila nosaukums.py paroles faila numurs (aizstājot direktoriju, faila nosaukumu, paroli un faila numuru ar attiecīgajām vērtībām)

2. Pēc tam terminālis pieņems vai noraidīs jūsu paroli. Ja tiek noraidīts, mēģiniet vēlreiz un noteikti ievadiet pareizās vērtības. Kad piekļuve ir piešķirta, terminālis jums jautās, vai vēlaties šifrēt failu vai izgūt failu. Lai šifrētu failu, ierakstiet e un lai izgūtu šifrētu failu, ierakstiet r.

3. Pēc tam jums tiks lūgts norādīt faila nosaukumu. Neaizmirstiet norādīt faila direktoriju, kā arī nosaukumu, kā arī faila paplašinājumu. Tomēr, ja atšifrējat failu, neievadiet paplašinājuma.aes daļu, jo kods to izskaidro.

4. Pēc tam programma šifrē vai atšifrē sniegto failu un izdzēš failu iepriekšējā stāvoklī (saglabājot šifrēto vai atšifrēto failu).

Voila! Paldies, ka padarījāt to tik pamācāmu, es zinu, ka koda pamācību lasīšana nav pati izklaidējošākā lieta. Šajā solī ir pievienoti pitona faili tiem, kas vēlas to izmēģināt. Vēlreiz paldies, ka lasījāt, un novēlu veiksmi turpmākajos kodēšanas centienos.

Ieteicams: