Innholdsfortegnelse:
Video: Python -sikkerhetskryptering/dekrypteringsprogramvare: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
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:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte