Innehållsförteckning:

Python Security Encryption/Decryption Software: 3 steg
Python Security Encryption/Decryption Software: 3 steg

Video: Python Security Encryption/Decryption Software: 3 steg

Video: Python Security Encryption/Decryption Software: 3 steg
Video: How to decode | Steganography 2024, November
Anonim
Python Security Encryption/Decryption Software
Python Security Encryption/Decryption Software
Python Security Encryption/Decryption Software
Python Security Encryption/Decryption Software

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

Skriva installationsfilen
Skriva installationsfilen
Skriva installationsfilen
Skriva installationsfilen
Skriva installationsfilen
Skriva installationsfilen
Skriva installationsfilen
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

Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
Krypterings-/dekrypteringsfilen
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: