Innehållsförteckning:
- Steg 1: Skriva installationsfilen
- Steg 2: Krypterings-/dekrypteringsfilen
- Steg 3: Användning av filer
Video: Python Security Encryption/Decryption Software: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
I denna instruktionsbok kommer jag att visa dig hur du med några enkla Python kan hålla dina filer säkra med branschstandard AES.
Krav:
- Python 3.7
- PyAesCrypt -bibliotek
- hashlib bibliotek
Om du inte har dessa bibliotek kan du enkelt installera genom att skriva:
pip3 installera hashlib
pip3 installera PyAesCrypt
i terminalen (eller CMD)
Du bör redan ha dessa:
- slumpmässigt bibliotek
- os bibliotek
- systembibliotek
Jag använder OS X, men det borde inte spela någon större roll, förutom snedstreckens riktning i filvägarna (OS X: /, Windows: )
Observera: På grund av vissa fel visar inte fördjupningarna i koden av någon anledning. Det kommer därför inte att finnas några fördjupningar i den visade koden, men de finns i Python -filerna som jag har bifogat i slutet och i de bifogade bilderna. Ta bara inte koden direkt från den visade texten, eftersom den inte fungerar på grund av bristen på fördjupningar
Om du har alla beroenden installerade, låt oss gå vidare till steg 1.
Steg 1: Skriva installationsfilen
En av de faktorer som gör detta så säkert är användningen av hash för att kontrollera lösenordet. Installationsfilen (jag ringer min setupsafe.py) kommer att:
- Skapa en mapp och dummy -filer för lösenordet
- Ställ in lösenordet
- Ställ in filnumret
- Hasha lösenordet
Först och främst kommer vi att importera våra beroende:
från sys import *
importera os
importera slumpmässigt
importera hashlib
Därefter skapar vi en mapp för att rymma lösenordshashen och dummyfilerna:
försök: om inte os.path.exists ('desktop/safesetup'):
os.mkdir ('desktop/safesetup/')
utom OSError:
print ("Fel vid skapande av mapp")
Denna kod skapar en mapp som heter safesetup (om den inte redan finns).
Efter detta kommer vi att ställa in lösenordet och generera ett slumpmässigt tal mellan 1 och 100 som vårt sätt att navigera i dummy -filerna:
global passwordpassword = argv [1].encode ('utf-8')
n = random.randint (1, 101)
Nu när vi har vårt lösenord och vårt filnummer kommer vi att skapa 99 dummy -filer inuti safesetup och en riktig fil som innehåller vårt lösenordshash:
för x i intervallet (101): om (x! = n):
f = open (("desktop/safesetup/"+str (x)), "w+")
f.close ()
annan:
lösenord = hashlib.sha256 (lösenord).hexdigest ()
f = open (("desktop/safesetup/"+str (x)), "w+")
f.write (lösenord)
f.close ()
tryck (n)
Den verkliga filen kallas vilket heltal n som helst. Den här filen innehåller vårt lösenord efter att ha hashats med sha256 -algoritmen (denna hash -algoritm används i stor utsträckning i kryptovalutor, framför allt Bitcoin).
Kom ihåg vad n är (det kommer att skrivas ut i konsolen), eftersom det är lika viktigt som lösenordet.
Det är allt vi behöver för vårt installationsprogram, så vi går nu vidare till krypterings-/dekrypteringsprogrammet.
Steg 2: Krypterings-/dekrypteringsfilen
Inställningsdelen för huvudfilen importerar beroenden, hashar det inmatade lösenordet och hämtar det riktiga lösenordshashen med det inmatade filnumret.
Först beroenden:
från sys import *import os
importera pyAesCrypt
importera hashlib
Därefter hascheringen av det inmatade lösenordet:
lösenord = argv [1].encode ('utf-8') lösenord = hashlib.sha256 (lösenord).hexdigest ()
Slutligen hämtade lösenordshämtningen:
file_key = str (argv [2]) hash = open (("desktop/safesetup/" + file_key), ("r +")). read ()
Det andra avsnittet i krypteringsfilen jämför hascherna, bestämmer jämförelsens riktighet och använder AESCrypt -pythonbiblioteket för att kryptera eller dekryptera din valda fil. Detta är en ganska stor bit kod, men jag kommer att bryta ner den:
if (lösenord == hash): print ("Lösenord accepterat")
bufferSize = 64 * 1024
operation = str (input ("Hämtar eller krypterar du filer? (r eller e)"))
if (operation == 'r'):
file_name = str (input ("File to retrieve:"))
pyAesCrypt.decryptFile ((filnamn + ".aes"), filnamn, lösenord, bufferSize)
os.remove ((filnamn + ".aes"))
elif (operation == 'e'):
file_name = str (input ("File to encrypt:"))
pyAesCrypt.encryptFile (filnamn, (filnamn + ".aes"), lösenord, bufferSize)
os.remove (filnamn)
annan:
print ("Fel: Felaktig inmatning")
annan:
print ("Åtkomst nekad")
Den första if -satsen avgör om de hashade lösenorden matchar. Om de gör det fortsätter det med att fråga om du vill kryptera filer eller hämta krypterade filer. Beroende på din inmatning kommer den antingen att kryptera eller dekryptera den tillhandahållna filen. När du uppmanas att ange namnet på filen, se till att ange sökvägen om inte filen finns i samma katalog som pythonprogrammet. Programmet raderar filen i sitt tidigare tillstånd, ersätter den med en krypterad.aes -fil, eller dekrypterar den och ersätter den med den ursprungliga filen.
I framtiden kan jag uppdatera detta till att inkludera ansiktsigenkänning med hjälp av Python OpenCV -biblioteket, men nu måste lösenord räcka.
Steg 3: Användning av filer
Så här kör du installationsfilen:
1. Skriv in terminalen:
python3 katalog/setupname.py lösenord (ersätter katalog, installationsnamn och lösenord med sina respektive värden)
2. Terminalen skickar ut ditt filnummer. Behåll detta.
För att köra krypterings-/dekrypteringsprogrammet, följ dessa steg:
1. Skriv in terminalen:
python3 katalog/filnamn.py lösenord filnummer (ersätter katalog, filnamn, lösenord och filnummer med sina respektive värden)
2. Terminalen accepterar eller antar sedan ditt lösenord. Om du avvisar, försök igen och se till att du skriver in rätt värden. När åtkomst har beviljats kommer terminalen att fråga dig om du vill kryptera en fil eller hämta en fil. För att kryptera en fil, skriv e, och för att hämta en krypterad fil, skriv r.
3. Du kommer då att bli ombedd att ange filnamnet. Kom ihåg att ange filens katalog samt namnet och filtillägget. Men om du dekrypterar en fil, skriv inte in.aes -delen av tillägget, eftersom koden står för det.
4. Programmet krypterar eller dekrypterar sedan den tillhandahållna filen och raderar filen i dess tidigare tillstånd (behåller den krypterade eller dekrypterade filen).
Voila! Tack för att du tog dig så långt in i det instruerbara, jag vet att läsning av kodhandledning inte är det mest underhållande. Pythonfilerna bifogas i detta steg, för er som vill ge detta ett skott. Återigen, tack för att du läste, och jag önskar dig lycka till i dina framtida kodningsinsatser.
Rekommenderad:
Zombie Detecting Smart Security Owl (Deep Learning): 10 steg (med bilder)
Zombie Detecting Smart Security Owl (Deep Learning): Hej alla, välkommen till T3chFlicks! I denna Halloween -handledning kommer vi att visa dig hur vi sätter en superhygglig twist på en vardaglig hushållsklassiker: säkerhetskameran. Hur?! Vi har skapat en mörkesugla som använder bildbehandling för att spåra människor
Pizero Motion Detect Webcam Security System: 3 steg
Pizero Motion Detect Webcam Security System: Detta system använder en pizero, wifi -dongel och en gammal webbkamera i ett anpassat matchbox -fodral. Det spelar in videor för rörelsedetektering vid 27 bps av någon betydande rörelse på min uppfart. Det laddar sedan upp klippen till ett dropbox -konto. Kan också se loggarna och
DIY WiFi Smart Security Light With Shelly 1: 6 Steg (med bilder)
DIY WiFi Smart Security Light With Shelly 1: Denna instruerbara kommer att titta på att skapa en DIY smart säkerhetsljus med Shelly 1 smart relä från Shelly. Genom att göra ett säkerhetsljus smart kan du ha mycket mer kontroll över när det aktiveras och hur länge det lyser. Det kan vara verkligt
Solar Powered Security Sensor: 4 steg
Solcellsdriven säkerhetssensor: Denna enkla och billiga säkerhetssensor har några anmärkningsvärda funktioner som kan vara av intresse för hobbyister: Solcellsdriven med en liten solcell laddningsbar litiumbatteriladdningskrets kan drivas med USB -kabel för initial laddning eller batteri
IOT Home Security System: 3 steg
IOT Home Security System: En av de mest användbara IoT -applikationerna är hemmasäkerhet. Tänk dig en tjuv som skär din säkerhetskameratråd medan du försöker bryta sig in i ditt hus, det här händer inte om ditt säkerhetssystem går trådlöst och smart