
Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02


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



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

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:
Synkronisering av mapper med Python: 5 trinn

Synkronisere mapper med Python: Denne instruksjonen viser deg hvordan du holder to mapper (og alle mappene i dem) synkronisert, så den ene er en direkte kopi av den andre. Ideell for sikkerhetskopiering av arbeid både lokalt, til en sky-/nettverksserver eller en USB -stasjon. Ingen erfaring med programmering er
Python Tic Tac Toe -spill: 4 trinn

Python Tic Tac Toe Game: python tic tac toe game dette spillet er laget i python som er et dataspråk jeg har brukt en python editor som heter: pycharm du kan også bruke vanlig python code editor også
Python Introduction - Katsuhiko Matsuda & Edwin Cijo - Grunnleggende: 7 trinn

Python Introduction - Katsuhiko Matsuda & Edwin Cijo - Grunnleggende: Hei, vi er 2 studenter i MYP 2. Vi vil lære deg grunnleggende om hvordan du koder Python. Det ble opprettet på slutten av 1980 -tallet av Guido van Rossum i Nederland. Det ble laget som en etterfølger av ABC -språket. Navnet er " Python " fordi når
QR -kodeskanner som bruker OpenCV i Python: 7 trinn

QR Code Scanner Using OpenCV in Python: I dagens verden ser vi QR-kode og strekkode brukes nesten hvor som helst fra produktemballasje til online betalinger og nå om dagen ser vi QR-koder selv i restauranten for å se menyen. Så ingen tviler på at det er den store tanken nå. Men har du noen gang
DIY GPS Tracker --- Python-applikasjon: 5 trinn (med bilder)

DIY GPS Tracker --- Python-applikasjon: Jeg deltok i et sykkelarrangement for to uker siden. Etter at jeg var ferdig, ønsket jeg å sjekke ruten og hastigheten jeg kjørte på den tiden. Dessverre ble det ikke oppnådd. Nå bruker jeg ESP32 til å lage en GPS -tracker, og jeg tar den til å registrere sykkelruten min