Tartalomjegyzék:

Python biztonsági titkosító/visszafejtő szoftver: 3 lépés
Python biztonsági titkosító/visszafejtő szoftver: 3 lépés

Videó: Python biztonsági titkosító/visszafejtő szoftver: 3 lépés

Videó: Python biztonsági titkosító/visszafejtő szoftver: 3 lépés
Videó: Hacktivity 2012 - Schäffer Krisztián - Forráskód ellenőrzés biztonsági szempontok alapján 2024, November
Anonim
Python biztonsági titkosító/visszafejtő szoftver
Python biztonsági titkosító/visszafejtő szoftver
Python biztonsági titkosító/visszafejtő szoftver
Python biztonsági titkosító/visszafejtő szoftver

Ebben az utasításban megmutatom, hogyan lehet néhány egyszerű Python segítségével biztonságban tartani fájljait az iparági szabványos AES használatával.

Követelmények:

- Python 3.7

- PyAesCrypt könyvtár

- hashlib könyvtár

Ha nem rendelkezik ezekkel a könyvtárakkal, egyszerűen telepítheti a következőt:

pip3 telepítse a hashlib -et

pip3 telepítse a PyAesCrypt programot

a terminálban (vagy CMD -ben)

Ezeknek már rendelkeznie kell:

- véletlen könyvtár

- os könyvtár

- rendszerkönyvtár

OS X -et használok, de ennek nem kell túl sokat számítania, kivéve a perjelek irányát a fájl elérési útjaiban (OS X: /, Windows:)

Kérjük, vegye figyelembe: bizonyos hibák miatt a kód bemélyedései valamilyen oknál fogva nem jelennek meg. Következésképpen a megjelenített kódban nem lesznek bemélyedések, de jelen vannak a végén csatolt Python -fájlokban és a mellékelt képeken. Csak ne vegye ki a kódot közvetlenül a megjelenített szövegből, mert a behúzások hiánya miatt nem fog működni

Ha minden függőség telepítve van, akkor folytassuk az 1. lépéssel.

1. lépés: A telepítőfájl írása

A telepítőfájl írása
A telepítőfájl írása
A telepítőfájl írása
A telepítőfájl írása
A telepítőfájl írása
A telepítőfájl írása
A telepítőfájl írása
A telepítőfájl írása

Az egyik olyan tényező, amely ezt biztonságossá teszi, a hash -ek használata a jelszó ellenőrzéséhez. A telepítőfájl (az enyémet setupsafe.py -nak hívom) a következő helyre kerül:

- Hozzon létre egy mappát és dummy fájlokat a jelszóhoz

- Állítsa be a jelszót

- Állítsa be a fájl számát

- Hash a jelszó

Először is importáljuk a függőségeinket:

a sys importből *

importál

véletlenszerű importálás

hashlib importálása

Ezután létrehozunk egy mappát a jelszó kivonatának és a dummy fájloknak:

próbáld meg: ha nem az os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

kivéve OSError:

print ("Hiba a mappa létrehozásakor")

Ez a kód létrehozza a safesetup nevű mappát (hacsak nem létezik).

Ezt követően beállítjuk a jelszót, és egy véletlenszerű számot generálunk 1 és 100 között, hogy navigáljunk a dummy fájlokban:

globális jelszó jelszó = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Most, hogy megvan a jelszavunk és a fájlszámunk, 99 dummy fájlt fogunk létrehozni a safesetupon belül, és egy valódi fájlt, amely tartalmazza a jelszó -kivonatunkat:

x esetén a (101) tartományban: ha (x! = n):

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

f. bezár ()

más:

jelszó = hashlib.sha256 (jelszó).hexdigest ()

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

f.write (jelszó)

f. bezár ()

nyomtatás (n)

A valódi fájlt bármilyen n egész számnak nevezzük. Ez a fájl tartalmazza a jelszavunkat, miután a sha256 algoritmussal kivonatolták (ezt a hash algoritmust széles körben használják a kriptovalutákban, különösen a Bitcoinban).

Ne feledje, mi az n (a konzolon lesz kinyomtatva), mivel ugyanolyan fontos, mint a jelszó.

Ez minden, amire szükségünk van a telepítőprogramunkhoz, ezért most térjünk át a titkosítási/visszafejtési programra.

2. lépés: A titkosítási/visszafejtési fájl

A titkosítási/visszafejtési fájl
A titkosítási/visszafejtési fájl
A titkosítási/visszafejtési fájl
A titkosítási/visszafejtési fájl
A titkosítási/visszafejtési fájl
A titkosítási/visszafejtési fájl

A fő fájl beállítási része importálja a függőségeket, kivonatolja a bevitt jelszót, és a beírt fájlszám használatával lekéri a valódi jelszó -kivonatot.

Először is, a függőségek:

sys import *import os

pyAesCrypt importálása

hashlib importálása

Ezután a beírt jelszó kivonata:

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

Végül a kivonatolt jelszó lekérése:

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

A titkosító fájl második része összehasonlítja a kivonatokat, meghatározza az összehasonlítás valódiságát, és az AESCrypt python könyvtár segítségével titkosítja vagy visszafejti a választott fájlt. Ez egy meglehetősen nagy kódrészlet, de lebontom:

if (jelszó == hash): print ("Jelszó elfogadva")

bufferSize = 64 * 1024

művelet = str (input ("Fájlok letöltése vagy titkosítása? (r vagy e)"))

ha (művelet == 'r'):

file_name = str (input ("Visszakeresendő fájl:"))

pyAesCrypt.decryptFile ((fájlnév + ".aes"), fájlnév, jelszó, bufferSize)

os.remove ((fájlnév + ".aes"))

elif (művelet == 'e'):

file_name = str (input ("Titkosítandó fájl:"))

pyAesCrypt.encryptFile (fájlnév, (fájlnév + ".aes"), jelszó, bufferSize)

os.remove (fájl_neve)

más:

print ("Hiba: helytelen bemenet")

más:

nyomtatás ("Hozzáférés megtagadva")

Az első if utasítás határozza meg, hogy a kivonatolt jelszavak megegyeznek -e. Ha igen, akkor tovább kérdezi, hogy szeretné -e titkosítani a fájlokat, vagy le szeretné -e tölteni a titkosított fájlokat. A beviteltől függően titkosítja vagy visszafejti a megadott fájlt. Amikor a rendszer felkéri a fájl nevének megadására, feltétlenül adja meg az elérési utat, kivéve, ha a fájl ugyanabban a könyvtárban található, mint a python program. A program törli a fájlt a korábbi állapotában, lecseréli egy titkosított.aes fájlra, vagy visszafejti, és lecseréli az eredeti fájlra.

A jövőben frissíthetem ezt az arcfelismeréssel, a Python OpenCV könyvtár használatával, de egyelőre elegendő a jelszó.

3. lépés: A fájlok kezelése

A telepítőfájl futtatásához kövesse az alábbi lépéseket:

1. Gépelje be a terminált:

python3 könyvtár/setupname.py jelszó (a könyvtár, a beállításnév és a jelszó helyettesítése a megfelelő értékekkel)

2. A terminál kiadja a fájl számát. Tartsd meg.

A titkosítási/visszafejtési program futtatásához kövesse az alábbi lépéseket:

1. Gépelje be a terminált:

python3 könyvtár/fájlnév.py jelszó fájlszáma (a könyvtár, fájlnév, jelszó és fájlszám helyettesítése a megfelelő értékekkel)

2. A terminál ekkor elfogadja vagy elutasítja a jelszavát. Ha elutasítja, próbálja újra, és győződjön meg arról, hogy a megfelelő értékeket írja be. A hozzáférés megadása után a terminál megkérdezi, hogy szeretne -e titkosítani egy fájlt vagy lekérni egy fájlt. Fájl titkosításához írja be az e, a titkosított fájl lekéréséhez pedig az r parancsot.

3. Ezután meg kell adnia a fájl nevét. Ne felejtse el megadni a fájl könyvtárát, valamint a nevét és a fájlkiterjesztést. Ha azonban visszafejt egy fájlt, ne írja be a kiterjesztés.aes részét, mivel a kód ezt elszámolja.

4. A program ezután titkosítja vagy visszafejti a megadott fájlt, és törli a fájlt az előző állapotában (megtartva a titkosított vagy visszafejtett fájlt).

Voálá! Köszönöm, hogy idáig eljutott az oktatható részig, tudom, hogy a kódoktató -könyvek olvasása nem a legszórakoztatóbb. A python fájlokat ebben a lépésben mellékeljük azoknak, akik ezt szeretnék kipróbálni. Még egyszer köszönöm, hogy elolvasta, és sok sikert kívánok a további kódolási törekvésekhez.

Ajánlott: