Indholdsfortegnelse:

Python -sikkerhedskryptering/dekrypteringssoftware: 3 trin
Python -sikkerhedskryptering/dekrypteringssoftware: 3 trin

Video: Python -sikkerhedskryptering/dekrypteringssoftware: 3 trin

Video: Python -sikkerhedskryptering/dekrypteringssoftware: 3 trin
Video: Python | Trim Whitespace From Strings with Strip Function 2024, November
Anonim
Python sikkerhedskryptering/dekrypteringssoftware
Python sikkerhedskryptering/dekrypteringssoftware
Python sikkerhedskryptering/dekrypteringssoftware
Python sikkerhedskryptering/dekrypteringssoftware

I denne Instructable vil jeg vise dig, hvordan du med nogle enkle Python kan holde dine filer sikre ved hjælp af branchestandard AES.

Krav:

- Python 3.7

- PyAesCrypt -bibliotek

- hashlib bibliotek

Hvis du ikke har disse biblioteker, kan du nemt installere ved at skrive:

pip3 installer hashlib

pip3 installer PyAesCrypt

i terminalen (eller CMD)

Du burde allerede have disse:

- tilfældigt bibliotek

- os bibliotek

- systembibliotek

Jeg bruger OS X, men det burde ikke være for meget, undtagen retningen på skråstregerne i filstierne (OS X: /, Windows:)

Bemærk: På grund af nogle fejl viser indrykkene i koden af en eller anden grund ikke. Der vil derfor ikke være nogen fordybninger i den viste kode, men de er til stede i de Python -filer, jeg har vedhæftet i slutningen, og i de vedlagte billeder. Bare tag ikke koden direkte fra den viste tekst, for den fungerer ikke på grund af manglen på fordybninger

Hvis du har alle afhængighederne installeret, lad os gå videre til trin 1.

Trin 1: Skrivning af installationsfilen

Skrivning af installationsfilen
Skrivning af installationsfilen
Skrivning af installationsfilen
Skrivning af installationsfilen
Skrivning af installationsfilen
Skrivning af installationsfilen
Skrivning af installationsfilen
Skrivning af installationsfilen

En af de faktorer, der gør dette så sikkert, er brugen af hash til at kontrollere adgangskoden. Opsætningsfilen (jeg kalder min setupsafe.py) vil:

- Opret en mappe og dummy -filer til adgangskoden

- Indstil adgangskoden

- Indstil filnummeret

- Hash adgangskoden

For det første skal vi importere vores afhængigheder:

fra sys import *

import os

import tilfældig

import hashlib

Dernæst opretter vi en mappe til at huse password -hash og dummy -filer:

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

os.mkdir ('desktop/safesetup/')

undtagen OSError:

print ("Fejl ved oprettelse af mappe")

Denne kode opretter en mappe kaldet safesetup (medmindre den allerede findes).

Efter dette skal vi indstille adgangskoden og generere et tilfældigt tal mellem 1 og 100 som vores måde at navigere i dummy -filerne:

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

n = random.randint (1, 101)

Nu hvor vi har vores kodeord og vores filnummer, skal vi oprette 99 dummy -filer inde i safesetup og en rigtig fil, der vil indeholde vores password -hash:

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

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

f.close ()

andet:

password = hashlib.sha256 (adgangskode).hexdigest ()

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

f.write (adgangskode)

f.close ()

tryk (n)

Den rigtige fil kaldes uanset heltal n. Denne fil indeholder vores adgangskode, efter at den er hash med algoritmen sha256 (denne hash -algoritme bruges meget i kryptokurver, især Bitcoin).

Husk hvad n er (det vil blive udskrevet i konsollen), da det er lige så vigtigt som adgangskoden.

Det er alt, hvad vi har brug for til vores installationsprogram, så vi går nu videre til krypterings-/dekrypteringsprogrammet.

Trin 2: Krypterings-/dekrypteringsfilen

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

Opsætningsafsnittet i hovedfilen importerer afhængighederne, hasherer det indtastede kodeord og henter det rigtige password -hash ved hjælp af det indtastede filnummer.

For det første afhængighederne:

fra sys import *import os

import pyAesCrypt

import hashlib

Dernæst hashing af det indtastede kodeord:

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

Endelig hentes adgangskoden til hash:

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

Den anden sektion af krypteringsfilen sammenligner hash -værdierne, bestemmer sammenligningens rigtighed og bruger AESCrypt -pythonbiblioteket til at kryptere eller dekryptere din valgte fil. Dette er en temmelig stor del kode, men jeg vil bryde den ned:

if (password == hash): print ("Adgangskode accepteret")

bufferSize = 64 * 1024

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

hvis (operation == 'r'):

file_name = str (input ("Fil der skal hentes:"))

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

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

elif (operation == 'e'):

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

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

os.remove (filnavn)

andet:

print ("Fejl: Forkert input")

andet:

print ("Adgang nægtet")

Den første if -sætning afgør, om de hashede adgangskoder matcher. Hvis de gør det, fortsætter det med at spørge, om du vil kryptere filer eller hente krypterede filer. Afhængigt af dit input vil den enten kryptere eller dekryptere den medfølgende fil. Når du bliver bedt om at angive navnet på filen, skal du sørge for at angive stien, medmindre filen er i det samme bibliotek som python -programmet. Programmet sletter filen i sin tidligere tilstand, erstatter den med en krypteret.aes -fil eller dekrypterer den og erstatter den med den originale fil.

I fremtiden vil jeg måske opdatere dette til at omfatte ansigtsgenkendelse ved hjælp af Python OpenCV -biblioteket, men nu skal adgangskoder være tilstrækkelige.

Trin 3: Betjening af filer

Følg disse trin for at køre installationsfilen:

1. Indtast terminalen:

python3 bibliotek/setupname.py adgangskode (erstatter bibliotek, installationsnavn og adgangskode med deres respektive værdier)

2. Terminalen sender dit filnummer. Behold dette.

Følg disse trin for at køre krypterings-/dekrypteringsprogrammet:

1. Indtast terminalen:

python3 bibliotek/filnavn.py adgangskode filnummer (erstatter bibliotek, filnavn, adgangskode og filnummer med deres respektive værdier)

2. Terminalen vil derefter enten acceptere eller afvise din adgangskode. Hvis du bliver afvist, skal du prøve igen og sørge for at indtaste de rigtige værdier. Når der er givet adgang, vil terminalen spørge dig, om du vil kryptere en fil eller hente en fil. Hvis du vil kryptere en fil, skal du skrive e og hente en krypteret fil ved at skrive r.

3. Du bliver derefter bedt om at angive filnavnet. Husk at angive biblioteket for filen såvel som navnet, og også filtypen. Men hvis du dekrypterer en fil, skal du ikke skrive.aes -delen af udvidelsen, da koden tegner sig for det.

4. Programmet krypterer eller dekrypterer derefter den leverede fil og sletter filen i sin tidligere tilstand (bevarer den krypterede eller dekrypterede fil).

Voila! Tak fordi du gjorde det så langt ind i det instruerbare, jeg ved, at læsning af kodevejledninger ikke er det mest underholdende. Python -filerne er vedlagt i dette trin, for dem af jer, der ønsker at give dette et skud. Endnu engang tak for læsningen, og jeg ønsker dig held og lykke med dine fremtidige kodningsbestræbelser.

Anbefalede: