Indholdsfortegnelse:
- Trin 1: Skrivning af installationsfilen
- Trin 2: Krypterings-/dekrypteringsfilen
- Trin 3: Betjening af filer
Video: Python -sikkerhedskryptering/dekrypteringssoftware: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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
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:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)