Satura rādītājs:
- 1. darbība: iestatīšanas faila rakstīšana
- 2. darbība: šifrēšanas/atšifrēšanas fails
- 3. darbība: failu darbība
Video: Python drošības šifrēšanas/atšifrēšanas programmatūra: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Š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
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
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:
Kā lejupielādēt bezmaksas programmatūru kā ISU students (Microsoft, Adobe un drošības programmatūra: 24 soļi
Kā lejupielādēt bezmaksas programmatūru kā ISU students (Microsoft, Adobe un drošības programmatūra: Adobe: pārejiet uz 1. darbību. Microsoft: pārejiet uz 8. darbību. Drošībai: pārejiet uz 12. darbību. Azure: pārejiet uz 16. darbību
Viena pieskāriena sieviešu drošības drošības sistēma: 3 soļi
Sieviešu drošības pieskāriena sistēma ar vienu pieskārienu: viena pieskāriena signalizācija Sieviešu drošības sistēma, izmantojot 8051 mikrokontrolleri Mūsdienu pasaulē sieviešu drošība ir vissvarīgākā problēma valstī. Šodien sievietes tiek uzmāktas un satrauktas, un dažreiz, kad nepieciešama steidzama palīdzība. Nav obligāta atrašanās vieta
Kinētiskās enerģijas ģenerators šifrēšanas ieguvei: 7 soļi
Kinētiskais enerģijas ģenerators šifrēšanas ieguvei: Man bija virkne dažādu dizaina iedvesmu. Man ļoti patika šī meitene, kura bija aizrāvusies ar riteņbraukšanu un kurai nebija daudz brīvā laika darba un koledžas dēļ. Es gribēju izveidot kaut ko tādu, ko viņa vēlētos, un man bija FinTech Hackathon c
Izveidot savu Trezor šifrēšanas aparatūras maku: 5 soļi (ar attēliem)
Izveidot savu Trezor šifrēšanas aparatūras maku: Šajā projektā es izveidoju savu Trezor kriptogrāfijas valūtas aparatūras maku ar korpusu. Tas ir iespējams, jo Trezor ir atvērtā koda avots, tāpēc es izmantoju failus, ko viņi sniedza savā github, lai izveidotu savu ierīci par mazāk nekā 40 ASV dolāriem. Bija daži
Parole USB diskdzinim bez šifrēšanas, izmantojot pakešfailu: 8 soļi
Paroles piešķiršana USB diskdzinim bez šifrēšanas ar sērijveida failu: programma, kas neļaus lietotājam iekļūt diskdzinī bez paroles un parādīs īpašnieka failu, kuru jūs varat mainīt pēc vēlēšanās, parādīs, kā viegli izmantot manu izveidoto programmu