Obsah:

Softvér na šifrovanie/dešifrovanie zabezpečenia Python: 3 kroky
Softvér na šifrovanie/dešifrovanie zabezpečenia Python: 3 kroky

Video: Softvér na šifrovanie/dešifrovanie zabezpečenia Python: 3 kroky

Video: Softvér na šifrovanie/dešifrovanie zabezpečenia Python: 3 kroky
Video: CS50 2013 - Week 9, continued 2024, November
Anonim
Softvér na šifrovanie/dešifrovanie zabezpečenia Python
Softvér na šifrovanie/dešifrovanie zabezpečenia Python
Softvér na šifrovanie/dešifrovanie zabezpečenia Python
Softvér na šifrovanie/dešifrovanie zabezpečenia Python

V tomto návode vám ukážem, ako s niektorým jednoduchým jazykom Python môžete zaistiť bezpečnosť svojich súborov pomocou priemyselného štandardu AES.

Požiadavky:

- Python 3.7

- Knižnica PyAesCrypt

- knižnica hashlib

Ak tieto knižnice nemáte, môžete ich ľahko nainštalovať zadaním:

pip3 nainštalujte hashlib

pip3 nainštalujte PyAesCrypt

v termináli (alebo CMD)

Mali by ste už mať tieto:

- náhodná knižnica

- knižnica os

- systémová knižnica

Používam OS X, ale nemalo by na tom príliš záležať, okrem smeru lomiek v cestách k súborom (OS X: /, Windows: )

Poznámka: Z dôvodu nejakej chyby sa zárezy v kóde z nejakého dôvodu nezobrazujú. V dôsledku toho nebudú v zobrazenom kóde žiadne zárezy, sú však prítomné v súboroch Pythonu, ktoré som pripojil na konci, a na priložených obrázkoch. Jednoducho neberte kód priamo zo zobrazeného textu, pretože nebude fungovať kvôli nedostatku odsadení

Ak máte nainštalované všetky závislosti, prejdite na krok 1.

Krok 1: Zapísanie inštalačného súboru

Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru
Zapisovanie inštalačného súboru

Jedným z faktorov, ktoré to robia tak bezpečným, je použitie hodnoty hash na kontrolu hesla. Inštalačný súbor (volám môj setupsafe.py) bude:

- Vytvorte priečinok a fiktívne súbory pre heslo

- Nastavte heslo

- Nastavte číslo súboru

- Zaškrtnite heslo

Najprv budeme importovať naše závislé osoby:

zo sys importu *

import os

import náhodný

importovať hashlib

Ďalej vytvoríme priečinok, v ktorom sa bude nachádzať hash hesiel a fiktívne súbory:

skúste: ak nie os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

okrem OSError:

vytlačiť („Chyba pri vytváraní priečinka“)

Tento kód vytvorí priečinok s názvom safesetup (ak už neexistuje).

Potom nastavíme heslo a vygenerujeme náhodné číslo od 1 do 100, ktoré bude slúžiť na navigáciu vo fiktívnych súboroch:

globálne heslopassword = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Teraz, keď máme heslo a číslo súboru, vytvoríme v safesetup 99 falošných súborov a jeden skutočný súbor, ktorý bude obsahovať hash hesla:

pre x v rozsahu (101): ak (x! = n):

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

f.close ()

inak:

heslo = hashlib.sha256 (heslo).hexdigest ()

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

f.write (heslo)

f.close ()

tlač (n)

Skutočný súbor sa nazýva akékoľvek celé číslo n. Tento súbor obsahuje naše heslo po hašovaní pomocou algoritmu sha256 (tento hashovací algoritmus sa široko používa v kryptomenách, predovšetkým v bitcoine).

Pamätajte si, čo je n (vytlačí sa v konzole), pretože je rovnako dôležité ako heslo.

To je všetko, čo potrebujeme pre náš inštalačný program, takže teraz prejdeme k šifrovaciemu/dešifrovaciemu programu.

Krok 2: Šifrovací/dešifrovací súbor

Šifrovací/dešifrovací súbor
Šifrovací/dešifrovací súbor
Šifrovací/dešifrovací súbor
Šifrovací/dešifrovací súbor
Šifrovací/dešifrovací súbor
Šifrovací/dešifrovací súbor

Inštalačná časť hlavného súboru importuje závislosti, hashuje zadané heslo a načítava skutočné hashovanie hesla pomocou zadaného čísla súboru.

Po prvé, závislosti:

zo sys import *import os

importovať pyAesCrypt

importovať hashlib

Ďalej hašovanie zadaného hesla:

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

Nakoniec získanie hašovaného hesla:

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

Druhá časť šifrovacieho súboru porovnáva hodnoty hash, určuje pravdivosť porovnania a na šifrovanie alebo dešifrovanie vami zvoleného súboru používa knižnicu python AESCrypt. Toto je pomerne veľký kus kódu, ale rozoberiem ho:

if (heslo == hash): print ("Heslo prijaté")

bufferSize = 64 * 1024

operation = str (vstup („Načítavate alebo šifrujete súbory? (r alebo e)“))

ak (operácia == 'r'):

file_name = str (vstup ("Súbor na načítanie:"))

pyAesCrypt.decryptFile ((meno_souboru + ".aes"), názov_súboru, heslo, veľkosť vyrovnávacej pamäte)

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

elif (operácia == 'e'):

file_name = str (vstup ("Súbor na šifrovanie:"))

pyAesCrypt.encryptFile (názov_souboru, (názov_súboru + „.aes“), heslo, veľkosť vyrovnávacej pamäte)

os.remove (názov_souboru)

inak:

vytlačiť („Chyba: nesprávne zadanie“)

inak:

tlač („Prístup odmietnutý“)

Prvý príkaz if určuje, či sa hašované heslá zhodujú. Ak áno, potom sa vás opýta, či chcete šifrovať súbory alebo načítať šifrované súbory. V závislosti od vášho zadania poskytnutý súbor buď zašifruje alebo dešifruje. Keď sa zobrazí výzva na zadanie názvu súboru, zadajte cestu, pokiaľ nie je súbor v rovnakom adresári ako program python. Program odstráni súbor v predchádzajúcom stave, nahradí ho šifrovaným súborom.aes alebo ho dešifruje a nahradí pôvodným súborom.

V budúcnosti by som to mohol aktualizovať tak, aby zahŕňal rozpoznávanie tváre pomocou knižnice Python OpenCV, ale zatiaľ budú musieť stačiť heslá.

Krok 3: Prevádzka súborov

Ak chcete spustiť inštalačný súbor, postupujte takto:

1. Napíšte terminál:

heslo adresára python3/setupname.py (nahradenie adresára, názvu inštalácie a hesla ich príslušnými hodnotami)

2. Terminál vygeneruje číslo vášho súboru. Nechaj si to.

Ak chcete spustiť šifrovací/dešifrovací program, postupujte takto:

1. Napíšte terminál:

adresár/názov súboru python3/názov súboru.py (nahradí adresár, názov súboru, heslo a číslo súboru príslušnými hodnotami)

2. Terminál potom buď prijme alebo odmietne vaše heslo. Ak ste odmietli, skúste to znova a uistite sa, že zadávate správne hodnoty. Po udelení prístupu sa vás terminál opýta, či chcete zašifrovať súbor alebo načítať súbor. Ak chcete zašifrovať súbor, zadajte e a ak chcete načítať zašifrovaný súbor, zadajte r.

3. Potom budete požiadaní o zadanie názvu súboru. Nezabudnite zadať adresár súboru, ako aj názov a tiež príponu súboru. Ak však dešifrujete súbor, nezadávajte časť.aes prípony, pretože na to zodpovedá kód.

4. Program potom zašifruje alebo dešifruje poskytnutý súbor a vymaže súbor v predchádzajúcom stave (zašifrovaný alebo dešifrovaný súbor zachová).

Voila! Ďakujem, že ste sa dostali až sem do pokynov, viem, že čítanie návodov k kódu nie je najzábavnejšie. Súbory pythonu sú priložené v tomto kroku pre tých z vás, ktorí to chcú skúsiť. Ešte raz ďakujem za prečítanie a prajem vám veľa šťastia vo vašom budúcom úsilí o kódovanie.

Odporúča: