Inhoudsopgave:

Python-beveiligingssoftware voor versleuteling/ontsleuteling: 3 stappen
Python-beveiligingssoftware voor versleuteling/ontsleuteling: 3 stappen

Video: Python-beveiligingssoftware voor versleuteling/ontsleuteling: 3 stappen

Video: Python-beveiligingssoftware voor versleuteling/ontsleuteling: 3 stappen
Video: Windows 11 Security — Our Hacker-in-Chief Runs Attacks and Shows Solutions 2024, November
Anonim
Python-beveiligingssoftware voor versleuteling/ontsleuteling
Python-beveiligingssoftware voor versleuteling/ontsleuteling
Python-beveiligingssoftware voor versleuteling/ontsleuteling
Python-beveiligingssoftware voor versleuteling/ontsleuteling

In deze Instructable laat ik je zien hoe je met een eenvoudige Python je bestanden veilig kunt houden met behulp van industriestandaard AES.

Vereisten:

-Python 3.7

- PyAesCrypt-bibliotheek

- hashlib-bibliotheek

Als u deze bibliotheken niet heeft, kunt u deze eenvoudig installeren door te typen:

pip3 hashlib installeren

pip3 installeer PyAesCrypt

in de terminal (of CMD)

Deze zou je al moeten hebben:

- willekeurige bibliotheek

- os bibliotheek

- systeembibliotheek

Ik gebruik OS X, maar het zou niet zoveel moeten uitmaken, behalve de richting van de schuine strepen in de bestandspaden (OS X: /, Windows:)

Let op: door een storing worden de inkepingen in de code om de een of andere reden niet weergegeven. Er zullen dus geen inkepingen in de weergegeven code zijn, maar ze zijn aanwezig in de Python-bestanden die ik aan het einde heb bijgevoegd, en in de bijgevoegde afbeeldingen. Neem de code alleen niet rechtstreeks uit de weergegeven tekst, omdat deze niet werkt vanwege het ontbreken van inspringingen

Als u alle afhankelijkheden hebt geïnstalleerd, gaan we verder met stap 1.

Stap 1: Het installatiebestand schrijven

Het installatiebestand schrijven
Het installatiebestand schrijven
Het installatiebestand schrijven
Het installatiebestand schrijven
Het installatiebestand schrijven
Het installatiebestand schrijven
Het installatiebestand schrijven
Het installatiebestand schrijven

Een van de factoren die dit zo veilig maakt, is het gebruik van hashes om het wachtwoord te controleren. Het setup-bestand (ik noem de mijne setupsafe.py) gaat naar:

- Maak een map en dummy-bestanden voor het wachtwoord

- Stel het wachtwoord in

- Stel het bestandsnummer in

- Hash het wachtwoord

Allereerst gaan we onze afhankelijkheden importeren:

van sys import *

importeer os

willekeurig importeren

hashlib importeren

Vervolgens zullen we een map maken om de wachtwoord-hash en de dummy-bestanden te huisvesten:

probeer: zo niet os.path.exists('desktop/safesetup'):

os.mkdir('desktop/safesetup/')

behalve OSEror:

print("Fout bij aanmaken map")

Deze code maakt een map aan met de naam safesetup (tenzij deze al bestaat).

Hierna gaan we het wachtwoord instellen en een willekeurig getal tussen 1 en 100 genereren als onze manier om door de dummy-bestanden te navigeren:

globaal wachtwoordwachtwoord = argv[1].encode('utf-8')

n = willekeurig.randint(1, 101)

Nu we ons wachtwoord en ons bestandsnummer hebben, gaan we 99 dummy-bestanden maken in safesetup en één echt bestand dat onze wachtwoord-hash bevat:

voor x in bereik(101): if(x != n):

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

f.sluiten()

anders:

wachtwoord = hashlib.sha256(wachtwoord).hexdigest()

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

f.schrijf(wachtwoord)

f.sluiten()

print(n)

Het echte bestand heet wat voor geheel getal n dan ook is. Dit bestand bevat ons wachtwoord, nadat het is gehasht met behulp van het sha256-algoritme (dit hash-algoritme wordt veel gebruikt in cryptocurrencies, met name Bitcoin).

Onthoud wat n is (het wordt afgedrukt in de console), want het is net zo belangrijk als het wachtwoord.

Dat is alles wat we nodig hebben voor ons installatieprogramma, dus we gaan nu verder met het coderings-/decoderingsprogramma.

Stap 2: Het coderings-/decoderingsbestand

Het coderings-/decoderingsbestand
Het coderings-/decoderingsbestand
Het coderings-/decoderingsbestand
Het coderings-/decoderingsbestand
Het coderings-/decoderingsbestand
Het coderings-/decoderingsbestand

Het setup-gedeelte van het hoofdbestand importeert de afhankelijkheden, hasht het ingevoerde wachtwoord en haalt de echte wachtwoordhash op met behulp van het ingevoerde bestandsnummer.

Eerst de afhankelijkheden:

van sys import *import os

importeer pyAesCrypt

hashlib importeren

Vervolgens de hashing van het ingevoerde wachtwoord:

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

Eindelijk, het ophalen van het gehashte wachtwoord:

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

Het tweede deel van het coderingsbestand vergelijkt de hashes, bepaalt de waarheid van de vergelijking en gebruikt de AESCrypt-pythonbibliotheek om uw bestand naar keuze te coderen of te decoderen. Dit is een vrij groot stuk code, maar ik zal het opsplitsen:

if(wachtwoord == hash): print("Wachtwoord geaccepteerd")

buffergrootte = 64 * 1024

operatie = str(input("Bent u bestanden aan het ophalen of versleutelen? (r of e) "))

if(bewerking == 'r'):

file_name = str(input("Op te halen bestand: "))

pyAesCrypt.decryptFile((bestandsnaam + ".aes"), bestandsnaam, wachtwoord, bufferSize)

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

elif(bewerking == 'e'):

file_name = str(input("Te versleutelen bestand: "))

pyAesCrypt.encryptFile(file_name, (file_name + ".aes"), wachtwoord, bufferSize)

os.remove(bestandsnaam)

anders:

print("Fout: Onjuiste invoer")

anders:

print("Toegang geweigerd")

De eerste if-instructie bepaalt of de gehashte wachtwoorden overeenkomen. Als dit het geval is, wordt u gevraagd of u bestanden wilt versleutelen of versleutelde bestanden wilt ophalen. Afhankelijk van uw invoer, zal het het verstrekte bestand coderen of decoderen. Wanneer u wordt gevraagd om de naam van het bestand op te geven, moet u ervoor zorgen dat u het pad opgeeft, tenzij het bestand zich in dezelfde map bevindt als het python-programma. Het programma verwijdert het bestand in de vorige staat, vervangt het door een versleuteld.aes-bestand, of decodeert het en vervangt het door het originele bestand.

In de toekomst zou ik dit kunnen bijwerken om gezichtsherkenning op te nemen met behulp van de Python OpenCV-bibliotheek, maar voorlopig zullen wachtwoorden moeten volstaan.

Stap 3: Bediening van bestanden

Volg deze stappen om het installatiebestand uit te voeren:

1. Typ de terminal in:

python3-directory/setupname.py-wachtwoord (directory, setupnaam en wachtwoord vervangen door hun respectieve waarden)

2. De terminal geeft uw bestandsnummer weer. Hou dit.

Volg deze stappen om het coderings-/decoderingsprogramma uit te voeren:

1. Typ de terminal in:

python3 directory/bestandsnaam.py wachtwoord bestandsnummer (waarbij directory, bestandsnaam, wachtwoord en bestandsnummer worden vervangen door hun respectieve waarden)

2. De terminal zal dan uw wachtwoord accepteren of weigeren. Indien afgewezen, probeer het opnieuw en zorg ervoor dat u de juiste waarden invoert. Nadat toegang is verleend, zal de terminal u vragen of u een bestand wilt versleutelen of ophalen. Om een bestand te versleutelen, typ e, en om een versleuteld bestand op te halen, typ r.

3. U wordt dan gevraagd om de bestandsnaam op te geven. Vergeet niet om de map van het bestand op te geven, evenals de naam en ook de bestandsextensie. Als u echter een bestand ontsleutelt, typt u niet het.aes-gedeelte van de extensie, omdat de code daarvoor zorgt.

4. Het programma codeert of decodeert vervolgens het verstrekte bestand en verwijdert het bestand in de vorige staat (waarbij het gecodeerde of gedecodeerde bestand behouden blijft).

Voila! Bedankt dat je zo ver in de instructable bent gekomen, ik weet dat het lezen van code-tutorials niet het meest vermakelijke is. De python-bestanden zijn ingesloten in deze stap, voor degenen onder u die dit een kans willen geven. Nogmaals bedankt voor het lezen en ik wens je veel succes bij je toekomstige coderingsactiviteiten.

Aanbevolen: