Turinys:

„Python“saugumo šifravimo/iššifravimo programinė įranga: 3 veiksmai
„Python“saugumo šifravimo/iššifravimo programinė įranga: 3 veiksmai

Video: „Python“saugumo šifravimo/iššifravimo programinė įranga: 3 veiksmai

Video: „Python“saugumo šifravimo/iššifravimo programinė įranga: 3 veiksmai
Video: CS50 2013 - Week 10 2024, Lapkritis
Anonim
„Python“saugumo šifravimo/iššifravimo programinė įranga
„Python“saugumo šifravimo/iššifravimo programinė įranga
„Python“saugumo šifravimo/iššifravimo programinė įranga
„Python“saugumo šifravimo/iššifravimo programinė įranga

Šioje instrukcijoje aš jums parodysiu, kaip naudojant paprastą „Python“galite apsaugoti savo failus naudodami pramonės standartą AES.

Reikalavimai:

- „Python“3.7

- „PyAesCrypt“biblioteka

- „hashlib“biblioteka

Jei neturite šių bibliotekų, galite lengvai įdiegti įvesdami:

pip3 įdiegti hashlib

pip3 įdiegti PyAesCrypt

terminale (arba CMD)

Šiuos jau turėtumėte turėti:

- atsitiktinė biblioteka

- os biblioteka

- sistemos biblioteka

Aš naudoju OS X, bet tai neturėtų būti per daug svarbu, išskyrus brūkšnių kryptį failų keliuose (OS X: /, Windows:)

Atkreipkite dėmesį: dėl tam tikrų nesklandumų kodo įdubos dėl tam tikrų priežasčių nerodomos. Todėl rodomame kode nebus įbrėžimų, tačiau jie yra „Python“failuose, kuriuos pridėjau pabaigoje, ir pridėtose nuotraukose. Tiesiog neimkite kodo tiesiai iš rodomo teksto, nes jis neveiks dėl įterpimų trūkumo

Jei įdiegėte visas priklausomybes, pereikime prie 1 veiksmo.

1 veiksmas: rašykite sąrankos failą

Sąrankos failo rašymas
Sąrankos failo rašymas
Sąrankos failo rašymas
Sąrankos failo rašymas
Sąrankos failo rašymas
Sąrankos failo rašymas
Sąrankos failo rašymas
Sąrankos failo rašymas

Vienas iš veiksnių, dėl kurių tai yra taip saugu, yra maišos naudojimas slaptažodžiui patikrinti. Sąrankos failas (aš vadinu „setupsafe.py“) bus skirtas:

- Sukurkite aplanką ir fiktyvius slaptažodžio failus

- Nustatykite slaptažodį

- Nustatykite failo numerį

- Sumaišykite slaptažodį

Pirmiausia importuosime savo priklausomybes:

iš sys importo *

importuoti

importuoti atsitiktinai

importuoti hashlib

Tada sukursime aplanką, kuriame bus slaptažodžio maišos ir fiktyvūs failai:

pabandykite: jei ne os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

išskyrus OS klaidą:

spausdinti („Klaida kuriant aplanką“)

Šis kodas sukurs aplanką, pavadintą „safesetup“(nebent jis jau yra).

Po to mes nustatysime slaptažodį ir sugeneruosime atsitiktinį skaičių nuo 1 iki 100, kad galėtume naršyti fiktyvius failus:

global passwordpassword = argv [1].encode ('utf-8')

n = atsitiktinis.randint (1, 101)

Dabar, kai turime slaptažodį ir failo numerį, „SafeSetup“viduje sukursime 99 fiktyvius failus ir vieną tikrą failą, kuriame bus mūsų slaptažodžio maiša:

x diapazone (101): jei (x! = n):

f = atviras (("desktop/safesetup/"+str (x)), "w+")

f. uždaryti ()

Kitas:

slaptažodis = hashlib.sha256 (slaptažodis).hexdigest ()

f = atviras (("desktop/safesetup/"+str (x)), "w+")

f. rašyti (slaptažodis)

f. uždaryti ()

spausdinti (n)

Tikrasis failas vadinamas bet koks sveikasis skaičius n. Šiame faile yra mūsų slaptažodis po maišos naudojant „sha256“algoritmą (šis maišos algoritmas plačiai naudojamas kriptovaliutose, ypač „Bitcoin“).

Prisiminkite, kas yra n (jis bus atspausdintas konsolėje), nes jis yra toks pat svarbus kaip ir slaptažodis.

Tai viskas, ko mums reikia mūsų sąrankos programai, todėl dabar pereisime prie šifravimo/iššifravimo programos.

2 veiksmas: šifravimo/iššifravimo failas

Šifravimo/iššifravimo failas
Šifravimo/iššifravimo failas
Šifravimo/iššifravimo failas
Šifravimo/iššifravimo failas
Šifravimo/iššifravimo failas
Šifravimo/iššifravimo failas

Pagrindinio failo sąrankos skiltyje importuojamos priklausomybės, maišomas įvestas slaptažodis ir gaunama tikroji slaptažodžio maiša naudojant įvestą failo numerį.

Pirma, priklausomybės:

iš sys importas *importas os

importuoti pyAesCrypt

importuoti hashlib

Tada įvesto slaptažodžio maiša:

password = argv [1].encode ('utf-8') password = hashlib.sha256 (slaptažodis).hexdigest ()

Galiausiai, maišos slaptažodžio gavimas:

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

Antrajame šifravimo failo skyriuje lyginamos maišos, nustatomas palyginimo tikrumas ir naudojama AESCrypt python biblioteka pasirinktam failui užšifruoti arba iššifruoti. Tai gana didelė kodo dalis, bet aš ją suskaidysiu:

if (slaptažodis == maiša): print („Slaptažodis priimtas“)

bufferSize = 64 * 1024

operacija = str (input ("Ar ieškote ar šifruojate failus? (r arba e)"))

jei (operacija == 'r'):

failo_pavadinimas = str (įvestis ("Gaunamas failas:"))

pyAesCrypt.decryptFile ((failo_pavadinimas + ".aes"), failo_pavadinimas, slaptažodis, buferio dydis)

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

elif (operacija == 'e'):

file_name = str (įvestis ("Šifruojamas failas:"))

pyAesCrypt.encryptFile (failo_pavadinimas, (failo_pavadinimas + „.aes“), slaptažodis, buferio dydis)

os.remove (failo_pavadinimas)

Kitas:

spausdinti („Klaida: neteisinga įvestis“)

Kitas:

spausdinti („Prieiga uždrausta“)

Pirmasis if teiginys nustato, ar maišyti slaptažodžiai atitinka. Jei jie tai padarys, toliau bus klausiama, ar norite užšifruoti failus, ar gauti šifruotus failus. Priklausomai nuo jūsų įvesties, jis užšifruos arba iššifruos pateiktą failą. Kai būsite paraginti nurodyti failo pavadinimą, būtinai nurodykite kelią, nebent failas yra tame pačiame kataloge kaip ir „python“programa. Programa ištrina failą ankstesnėje būsenoje, pakeisdama jį užšifruotu.aes failu arba iššifruodama ir pakeisdama originaliu failu.

Ateityje galėčiau tai atnaujinti ir įtraukti veido atpažinimą naudojant „Python OpenCV“biblioteką, tačiau kol kas užteks slaptažodžių.

3 žingsnis: failų valdymas

Norėdami paleisti sąrankos failą, atlikite šiuos veiksmus:

1. Įveskite terminalą:

python3 katalogo/setupname.py slaptažodis (pakeičiant katalogą, sąrankos pavadinimą ir slaptažodį atitinkamomis reikšmėmis)

2. Terminalas išves jūsų failo numerį. Laikyk tai.

Norėdami paleisti šifravimo/iššifravimo programą, atlikite šiuos veiksmus:

1. Įveskite terminalą:

python3 katalogas/failo pavadinimas.py slaptažodžio failo numeris (pakeičiant katalogą, failo pavadinimą, slaptažodį ir failo numerį atitinkamomis reikšmėmis)

2. Tada terminalas priims arba atmes jūsų slaptažodį. Jei atmetama, bandykite dar kartą ir įsitikinkite, kad įvedėte teisingas vertes. Kai prieiga bus suteikta, terminalas paklaus, ar norite užšifruoti failą, ar nuskaityti failą. Norėdami užšifruoti failą, įveskite e, o jei norite gauti užšifruotą failą, įveskite r.

3. Tada jūsų bus paprašyta nurodyti failo pavadinimą. Nepamirškite nurodyti failo katalogo, pavadinimo ir failo plėtinio. Tačiau, jei iššifruojate failą, neveskite plėtinio.aes dalies, nes kodas tai lemia.

4. Tada programa užšifruoja arba iššifruoja pateiktą failą ir ištrina ankstesnės būsenos failą (išsaugodama užšifruotą arba iššifruotą failą).

Voila! Ačiū, kad padarėte tai taip pamokoma, žinau, kad kodo vadovėlių skaitymas nėra pats linksmiausias dalykas. Šiame žingsnyje pridedami „Python“failai tiems, kurie nori tai išbandyti. Dar kartą dėkoju, kad skaitote, ir linkiu sėkmės tolimesniuose kodavimo darbuose.

Rekomenduojamas: