Innholdsfortegnelse:

Python -sikkerhetskryptering/dekrypteringsprogramvare: 3 trinn
Python -sikkerhetskryptering/dekrypteringsprogramvare: 3 trinn

Video: Python -sikkerhetskryptering/dekrypteringsprogramvare: 3 trinn

Video: Python -sikkerhetskryptering/dekrypteringsprogramvare: 3 trinn
Video: Python 3 Уроки Для Начинающих | Урок №11 Свойства и методы строк в Python 3 | Программирование Азы 2024, November
Anonim
Python sikkerhetskryptering/dekrypteringsprogramvare
Python sikkerhetskryptering/dekrypteringsprogramvare
Python sikkerhetskryptering/dekrypteringsprogramvare
Python sikkerhetskryptering/dekrypteringsprogramvare

I denne instruksjonsboken vil jeg vise deg hvordan du med noen enkle Python kan holde filene dine sikre med bransjestandard AES.

Krav:

- Python 3.7

- PyAesCrypt -bibliotek

- hashlib bibliotek

Hvis du ikke har disse bibliotekene, kan du enkelt installere ved å skrive:

pip3 installer hashlib

pip3 installer PyAesCrypt

i terminalen (eller CMD)

Du bør allerede ha disse:

- tilfeldig bibliotek

- os bibliotek

- systembibliotek

Jeg bruker OS X, men det burde ikke ha så stor betydning, bortsett fra retningen på skråstrekkene i filbanene (OS X: /, Windows:)

Vær oppmerksom på: På grunn av noen feil, viser innrykkene i koden av en eller annen grunn ikke. Det vil derfor ikke være noen fordypninger i den viste koden, men de er tilstede i Python -filene jeg har lagt ved på slutten, og i de vedlagte bildene. Bare ikke ta koden direkte fra den viste teksten, fordi den ikke vil fungere på grunn av mangel på fordypninger

Hvis du har alle avhengighetene installert, la oss gå videre til trinn 1.

Trinn 1: Skriv oppsettfilen

Skriver oppsettfilen
Skriver oppsettfilen
Skriver oppsettfilen
Skriver oppsettfilen
Skriver oppsettfilen
Skriver oppsettfilen
Skriver oppsettfilen
Skriver oppsettfilen

En av faktorene som gjør dette så trygt er bruk av hashes for å sjekke passordet. Oppsettfilen (jeg kaller mine setupsafe.py) kommer til å:

- Lag en mappe og dummy -filer for passordet

- Angi passordet

- Angi filnummeret

- Hash passordet

For det første skal vi importere våre avhengigheter:

fra sys import *

import os

importer tilfeldig

import hashlib

Deretter vil vi lage en mappe for passord -hash og dummy -filer:

prøv: hvis ikke os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

unntatt OSError:

print ("Feil ved opprettelse av mappe")

Denne koden vil opprette en mappe som heter safesetup (med mindre den allerede finnes).

Etter dette skal vi angi passordet og generere et tilfeldig tall mellom 1 og 100 som vår måte å navigere i dummy -filene:

globalt passordpassord = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Nå som vi har passordet og filnummeret vårt, skal vi lage 99 dummy -filer inne i safesetup, og en ekte fil som vil inneholde passord -hashen vår:

for x i området (101): hvis (x! = n):

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

f.close ()

ellers:

passord = hashlib.sha256 (passord).hexdigest ()

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

f.write (passord)

f.close ()

skrive ut (n)

Den virkelige filen kalles uansett heltall n. Denne filen inneholder passordet vårt, etter å ha blitt hasket med sha256 -algoritmen (denne hash -algoritmen brukes mye i kryptokurver, særlig Bitcoin).

Husk hva n er (det skrives ut i konsollen), da det er like viktig som passordet.

Det er alt vi trenger for vårt oppsettprogram, så vi går nå videre til krypterings-/dekrypteringsprogrammet.

Trinn 2: Krypterings-/dekrypteringsfilen

Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen

Oppsettseksjonen i hovedfilen importerer avhengighetene, hasherer det innlagte passordet og henter den virkelige passord -hashen ved hjelp av det innlagte filnummeret.

Først avhengighetene:

fra sys import *import os

importer pyAesCrypt

import hashlib

Deretter hashing av det angitte passordet:

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

Til slutt hentet passordhenting:

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

Den andre delen av krypteringsfilen sammenligner hasjene, bestemmer sannheten i sammenligningen og bruker AESCrypt python -biblioteket til å kryptere eller dekryptere filen du ønsker. Dette er en ganske stor del av koden, men jeg vil bryte den ned:

if (passord == hash): print ("Passord godtatt")

bufferSize = 64 * 1024

operation = str (input ("Henter eller krypterer du filer? (r eller e)"))

hvis (operasjon == 'r'):

file_name = str (input ("File to retrieve:"))

pyAesCrypt.decryptFile ((filnavn + ".aes"), filnavn, passord, bufferSize)

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

elif (operasjon == 'e'):

file_name = str (input ("File to encrypt:"))

pyAesCrypt.encryptFile (filnavn, (filnavn + ".aes"), passord, bufferSize)

os.remove (filnavn)

ellers:

print ("Feil: Feil inngang")

ellers:

print ("Tilgang nektet")

Den første if -setningen avgjør om de hashede passordene stemmer overens. Hvis de gjør det, fortsetter det med å spørre om du vil kryptere filer eller hente krypterte filer. Avhengig av innspill, vil den enten kryptere eller dekryptere den medfølgende filen. Når du blir bedt om å oppgi navnet på filen, må du angi banen med mindre filen er i samme katalog som python -programmet. Programmet sletter filen i sin tidligere tilstand, erstatter den med en kryptert. Aes -fil, eller dekrypterer den og erstatter den med den opprinnelige filen.

I fremtiden kan jeg oppdatere dette til å inkludere ansiktsgjenkjenning ved hjelp av Python OpenCV -biblioteket, men for nå må passord være tilstrekkelig.

Trinn 3: Drift av filer

Følg disse trinnene for å kjøre installasjonsfilen:

1. Skriv inn terminalen:

python3 katalog/oppsettnavn. py passord (erstatter katalog, oppsettnavn og passord med sine respektive verdier)

2. Terminalen sender ut filnummeret ditt. Behold dette.

Følg disse trinnene for å kjøre krypterings-/dekrypteringsprogrammet:

1. Skriv inn terminalen:

python3 katalog/filnavn.py passord filnummer (erstatter katalog, filnavn, passord og filnummer med sine respektive verdier)

2. Terminalen vil da enten godta eller avvise passordet ditt. Hvis du blir avvist, kan du prøve igjen og sørge for at du skriver inn de riktige verdiene. Når tilgang er gitt, vil terminalen spørre deg om du vil kryptere en fil eller hente en fil. For å kryptere en fil, skriv inn e, og for å hente en kryptert fil, skriv r.

3. Du vil da bli bedt om å oppgi filnavnet. Husk å oppgi katalogen til filen så vel som navnet, og også filtypen. Imidlertid, hvis du dekrypterer en fil, ikke skriv inn.aes -delen av utvidelsen, ettersom koden står for det.

4. Programmet krypterer eller dekrypterer deretter den medfølgende filen, og sletter filen i sin tidligere tilstand (beholder den krypterte eller dekrypterte filen).

Voila! Takk for at du kom så langt inn i den instruerbare, jeg vet at lesing av kodeopplæringer ikke er det mest underholdende. Python -filene er vedlagt i dette trinnet, for de av dere som ønsker å prøve dette. Nok en gang, takk for at du leser, og jeg ønsker deg lykke til i dine fremtidige kodingsarbeider.

Anbefalt: