Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selles juhendis näitan teile, kuidas mõne lihtsa Pythoni abil saate oma faile turvaliselt hoida, kasutades tööstusstandardit AES.
Nõuded:
- Python 3.7
- PyAesCrypt raamatukogu
- hashlibi raamatukogu
Kui teil pole neid teeke, saate hõlpsasti installida, tippides:
pip3 installige hashlib
pip3 installige PyAesCrypt
terminalis (või CMD -s)
Need peaksid teil juba olemas olema:
- juhuslik raamatukogu
- os raamatukogu
- süsteemiteek
Ma kasutan OS X -i, kuid see ei tohiks olla liiga oluline, välja arvatud failiteede kaldkriipsude suund (OS X: /, Windows:)
Pange tähele: mõne tõrke tõttu ei kuvata koodi taandeid mingil põhjusel. Järelikult ei ole kuvatavas koodis taandeid, kuid need on olemas Pythoni failides, mille olen lõpus lisanud, ja lisatud piltidel. Lihtsalt ärge võtke koodi otse kuvatud tekstist, sest see ei tööta taanete puudumise tõttu
Kui teil on kõik sõltuvused installitud, liigume edasi 1. sammu juurde.
Samm: seadistusfaili kirjutamine
Üks teguritest, mis selle turvalisuse muudab, on räside kasutamine parooli kontrollimiseks. Seadistusfail (helistan minu aadressile setupsafe.py) läheb:
- Looge parooli jaoks kaust ja näiv failid
- Määrake parool
- Määrake faili number
- Hash parool
Esiteks impordime oma sõltuvused:
sys impordist *
import os
importida juhuslikult
impordi hashlib
Järgmisena loome kausta parooliräsile ja näivatele failidele:
proovige: kui mitte os.path.exists ('desktop/safesetup'):
os.mkdir ('desktop/safesetup/')
välja arvatud OSViga:
print ("Viga kausta loomisel")
See kood loob kausta nimega safesetup (kui see pole juba olemas).
Pärast seda seadistame parooli ja genereerime näivfailides navigeerimiseks juhusliku arvu vahemikus 1 kuni 100:
globaalne paroolparool = argv [1].encode ('utf-8')
n = juhuslik.randint (1, 101)
Nüüd, kui meil on parool ja failinumber, loome turvalises seadistuses 99 näivfaili ja ühe reaalse faili, mis sisaldab meie paroolirässi:
x jaoks vahemikus (101): kui (x! = n):
f = avatud (("desktop/safesetup/"+str (x)), "w+")
f. sulge ()
muidu:
parool = hashlib.sha256 (parool).hexdigest ()
f = avatud (("desktop/safesetup/"+str (x)), "w+")
f.write (parool)
f. sulge ()
trükk (n)
Tegelikku faili nimetatakse ükskõik milliseks täisarvuks n. See fail sisaldab meie parooli pärast sha256 algoritmiga räsimist (seda räsialgoritmi kasutatakse laialdaselt krüptovaluutades, eriti Bitcoinis).
Pidage meeles, mis on n (see trükitakse konsooli), kuna see on sama oluline kui parool.
See on kõik, mida vajame oma seadistusprogrammi jaoks, nii et liigume nüüd krüptimis-/dekrüpteerimisprogrammi juurde.
Samm: krüptimis-/dekrüpteerimisfail
Põhifaili seadistusjaotis impordib sõltuvused, räsib sisestatud parooli ja otsib sisestatud failinumbri abil välja tegeliku parooli räsi.
Esiteks sõltuvused:
alates sys import *import os
import pyAesCrypt
impordi hashlib
Järgmisena sisestatud parooli räsimine:
parool = argv [1].encode ('utf-8') parool = hashlib.sha256 (parool).hexdigest ()
Lõpuks räsitud parooli otsimine:
file_key = str (argv [2]) hash = open (("" desktop/safesetup/" + file_key), (" r + ")). loe ()
Krüpteerimisfaili teises jaotises võrreldakse räsi, määratakse võrdluse tõesus ja kasutatakse valitud faili krüptimiseks või dekrüpteerimiseks AESCrypt pythoni teeki. See on üsna suur kooditükk, kuid ma jagan selle lahti:
if (parool == räsi): print ("Parool aktsepteeritud")
bufferSize = 64 * 1024
operatsioon = str (input ("Kas otsite või krüptite faile? (r või e)"))
kui (operatsioon == 'r'):
faili_nimi = str (sisend ("Allalaaditav fail:"))
pyAesCrypt.decryptFile ((faili_nimi + ".aes"), faili_nimi, parool, bufferSize)
os.remove ((failinimi + ".aes"))
elif (operatsioon == 'e'):
faili_nimi = str (sisend ("Krüpteeritav fail:"))
pyAesCrypt.encryptFile (faili_nimi, (failinimi + ".aes"), parool, bufferSize)
os.remove (faili_nimi)
muidu:
print ("Viga: vale sisend")
muidu:
print ("Juurdepääs keelatud")
Esimene if -lause määrab, kas räsitud paroolid sobivad. Kui nad seda teevad, küsib ta edasi, kas soovite faile krüptida või krüpteeritud faile alla laadida. Sõltuvalt teie sisendist krüpteerib või dekrüpteerib pakutud fail. Kui teil palutakse faili nimi anda, määrake kindlasti tee, kui fail ei ole python -programmiga samas kataloogis. Programm kustutab faili oma eelmises olekus, asendades selle krüptitud.aes -failiga või dekrüpteerides ja asendades selle algse failiga.
Tulevikus võin seda värskendada, et lisada näotuvastus Python OpenCV raamatukogu abil, kuid praegu piisab paroolidest.
3. samm: failide kasutamine
Seadistusfaili käivitamiseks toimige järgmiselt.
1. Sisestage terminal:
python3 kataloogi/setupname.py parool (kataloogi, häälestusnime ja parooli asendamine vastavate väärtustega)
2. Terminal väljastab teie failinumbri. Hoia seda.
Krüpteerimis-/dekrüpteerimisprogrammi käivitamiseks toimige järgmiselt.
1. Sisestage terminal:
python3 kataloog/failinimi.py paroolifaili number (kataloogi, failinime, parooli ja failinumbri asendamine vastavate väärtustega)
2. Seejärel võtab terminal teie parooli vastu või lükkab selle tagasi. Kui lükatakse tagasi, proovige uuesti ja veenduge, et sisestate õiged väärtused. Kui juurdepääs on antud, küsib terminal, kas soovite faili krüptida või faili alla laadida. Faili krüptimiseks tippige e ja krüpteeritud faili allalaadimiseks tippige r.
3. Seejärel palutakse teil sisestada faili nimi. Ärge unustage sisestada faili kataloogi, nime ja ka faililaiendit. Kui aga krüpteerite faili, ärge tippige laiendi.aes osa, kuna kood seda kajastab.
4. Seejärel krüpteerib programm või dekrüpteerib pakutud faili ja kustutab faili eelmises olekus (säilitades krüptitud või dekrüpteeritud faili).
Voila! Täname, et jõudsite juhendamisse nii kaugele, tean, et koodiõpetuste lugemine pole kõige lõbusam asi. Python -failid on selles etapis lisatud neile, kes soovivad seda proovida. Tänan teid veel kord lugemise eest ja soovin teile edu edaspidistes kodeerimistegevustes.