Obsah:

Software pro šifrování/dešifrování zabezpečení Pythonu: 3 kroky
Software pro šifrování/dešifrování zabezpečení Pythonu: 3 kroky

Video: Software pro šifrování/dešifrování zabezpečení Pythonu: 3 kroky

Video: Software pro šifrování/dešifrování zabezpečení Pythonu: 3 kroky
Video: Cryptography with Python! One-Time Pad 2024, Listopad
Anonim
Software pro šifrování/dešifrování zabezpečení Pythonu
Software pro šifrování/dešifrování zabezpečení Pythonu
Software pro šifrování/dešifrování zabezpečení Pythonu
Software pro šifrování/dešifrování zabezpečení Pythonu

V tomto Instructable vám ukážu, jak s nějakým jednoduchým Pythonem můžete zajistit zabezpečení svých souborů pomocí průmyslového standardu AES.

Požadavky:

- Python 3.7

- Knihovna PyAesCrypt

- knihovna hashlib

Pokud tyto knihovny nemáte, můžete je snadno nainstalovat zadáním:

pip3 nainstalujte hashlib

pip3 nainstalujte PyAesCrypt

v terminálu (nebo CMD)

Měli byste již mít tyto:

- náhodná knihovna

- knihovna os

- systémová knihovna

Používám OS X, ale nemělo by na tom příliš záležet, kromě směru lomítek v cestách k souborům (OS X: /, Windows:)

Poznámka: Kvůli nějaké závadě se zářezy v kódu z nějakého důvodu nezobrazují. V důsledku toho nebudou v zobrazeném kódu žádná odsazení, ale jsou přítomna v souborech Pythonu, které jsem připojil na konci, a v přiložených obrázcích. Jen neberte kód přímo ze zobrazeného textu, protože kvůli nedostatku odsazení nebude fungovat

Pokud máte nainstalovány všechny závislosti, přejděte ke kroku 1.

Krok 1: Zápis instalačního souboru

Zápis instalačního souboru
Zápis instalačního souboru
Zápis instalačního souboru
Zápis instalačního souboru
Zápis instalačního souboru
Zápis instalačního souboru
Zápis instalačního souboru
Zápis instalačního souboru

Jedním z faktorů, které to činí tak bezpečným, je použití hash pro kontrolu hesla. Instalační soubor (volám můj setupsafe.py) bude:

- Vytvořte složku a fiktivní soubory pro heslo

- Nastavte heslo

- Nastavte číslo souboru

- Zaškrtněte heslo

Nejprve importujeme naše závislosti:

ze sys importu *

import os

importovat náhodně

importovat hashlib

Dále vytvoříme složku pro uložení hesla hash a fiktivních souborů:

zkus: pokud ne os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

kromě OSError:

tisk ("Chyba při vytváření složky")

Tento kód vytvoří složku s názvem safesetup (pokud již neexistuje).

Poté nastavíme heslo a vygenerujeme náhodné číslo mezi 1 a 100 jako způsob, jak procházet fiktivní soubory:

globální heslo heslo = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Nyní, když máme heslo a číslo souboru, vytvoříme v safesetupu 99 fiktivních souborů a jeden skutečný soubor, který bude obsahovat hash hesla:

pro x v rozsahu (101): if (x! = n):

f = otevřeno (("desktop/safesetup/"+str (x)), "w+")

f.close ()

jiný:

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

f = otevřeno (("desktop/safesetup/"+str (x)), "w+")

f.write (heslo)

f.close ()

tisk (n)

Skutečný soubor se nazývá bez ohledu na celé číslo n. Tento soubor obsahuje naše heslo poté, co bylo hašováno pomocí algoritmu sha256 (tento hashovací algoritmus je široce používán v kryptoměnách, zejména v bitcoinech).

Pamatujte si, co je n (bude vytištěno v konzole), protože je stejně důležité jako heslo.

To je vše, co pro náš instalační program potřebujeme, takže nyní přejdeme k šifrovacímu/dešifrovacímu programu.

Krok 2: Soubor šifrování/dešifrování

Šifrovací/dešifrovací soubor
Šifrovací/dešifrovací soubor
Šifrovací/dešifrovací soubor
Šifrovací/dešifrovací soubor
Šifrovací/dešifrovací soubor
Šifrovací/dešifrovací soubor

Sekce nastavení hlavního souboru importuje závislosti, hashuje zadané heslo a načítá skutečný hash hesla pomocí zadaného čísla souboru.

Za prvé, závislosti:

ze sys import *import os

importovat pyAesCrypt

importovat hashlib

Dále hashování zadaného hesla:

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

Nakonec získání hašovaného hesla:

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

Druhá část šifrovacího souboru porovnává hodnoty hash, určuje pravdivost porovnání a používá k šifrování nebo dešifrování vámi vybraného souboru knihovnu AESCrypt python. Toto je poměrně velký kus kódu, ale rozdělím to:

if (heslo == hash): print ("Heslo přijato")

bufferSize = 64 * 1024

operation = str (vstup („Načítáte nebo šifrujete soubory? (r nebo e)“))

if (operation == 'r'):

název_souboru = str (vstup ("Soubor k načtení:"))

pyAesCrypt.decryptFile ((název_souboru + ".aes"), název_souboru, heslo, velikost vyrovnávací paměti)

os.remove ((název_souboru + ".aes"))

elif (operace == 'e'):

název_souboru = str (vstup ("Soubor k šifrování:"))

pyAesCrypt.encryptFile (název_souboru, (název_souboru + „.aes“), heslo, velikost vyrovnávací paměti)

os.remove (název_souboru)

jiný:

tisk ("Chyba: nesprávný vstup")

jiný:

tisk ("Přístup odepřen")

První příkaz if určuje, zda se hashovaná hesla shodují. Pokud ano, pak se vás zeptá, zda chcete šifrovat soubory nebo načítat šifrované soubory. V závislosti na vašem zadání buď zašifruje nebo dešifruje poskytnutý soubor. Až budete vyzváni k zadání názvu souboru, nezapomeňte zadat cestu, pokud soubor není ve stejném adresáři jako program python. Program odstraní soubor v předchozím stavu, nahradí jej šifrovaným souborem.aes nebo jej dešifruje a nahradí původním souborem.

V budoucnu bych to mohl aktualizovat tak, aby zahrnoval rozpoznávání obličeje pomocí knihovny Python OpenCV, ale prozatím bude muset stačit heslo.

Krok 3: Provoz souborů

Chcete -li spustit instalační soubor, postupujte takto:

1. Zadejte terminál:

heslo adresáře python3/setupname.py (nahrazení adresáře, názvu instalace a hesla jejich příslušnými hodnotami)

2. Terminál vydá číslo vašeho souboru. Nechte si to.

Chcete -li spustit šifrovací/dešifrovací program, postupujte takto:

1. Zadejte terminál:

python3 adresář/název_souboru.py heslo číslo souboru (nahrazení adresáře, názvu souboru, hesla a čísla souboru příslušnými hodnotami)

2. Terminál poté vaše heslo buď přijme, nebo odmítne. Pokud je zamítnuto, zkuste to znovu a ujistěte se, že zadáváte správné hodnoty. Po udělení přístupu se vás terminál zeptá, zda chcete soubor zašifrovat nebo soubor načíst. Chcete -li šifrovat soubor, zadejte e a pro načtení zašifrovaného souboru zadejte r.

3. Poté budete požádáni o zadání názvu souboru. Nezapomeňte zadat adresář souboru, název a také příponu souboru. Pokud však dešifrujete soubor, nezadávejte část.aes přípony, protože to odpovídá kódu.

4. Program poté zašifruje nebo dešifruje poskytnutý soubor a odstraní soubor v předchozím stavu (zašifrovaný nebo dešifrovaný soubor zachová).

Voila! Díky, že jste se dostali tak daleko do instruktáže, vím, že čtení návodů k kódu není nejzábavnější věc. Soubory pythonu jsou v tomto kroku uzavřeny pro ty z vás, kteří tomu chtějí dát šanci. Ještě jednou děkuji za přečtení a přeji vám hodně štěstí ve vašem budoucím úsilí o kódování.

Doporučuje: