INHOUDSOPGAWE:

Python -beveiligings- en dekripsiesagteware: 3 stappe
Python -beveiligings- en dekripsiesagteware: 3 stappe

Video: Python -beveiligings- en dekripsiesagteware: 3 stappe

Video: Python -beveiligings- en dekripsiesagteware: 3 stappe
Video: Running Python Scripts in Ubuntu! 2024, November
Anonim
Python -beveiligings- en dekripsiesagteware
Python -beveiligings- en dekripsiesagteware
Python -beveiligings- en dekripsiesagteware
Python -beveiligings- en dekripsiesagteware

In hierdie instruksies sal ek u wys hoe u met 'n paar eenvoudige Python u lêers veilig kan hou met die standaard AES in die bedryf.

Vereistes:

- Python 3.7

- PyAesCrypt -biblioteek

- hashlib biblioteek

As u nie hierdie biblioteke het nie, kan u dit maklik installeer deur te tik:

pip3 installeer hashlib

pip3 installeer PyAesCrypt

in die terminale (of CMD)

U behoort reeds hierdie te hê:

- ewekansige biblioteek

- os biblioteek

- stelsel biblioteek

Ek gebruik OS X, maar dit behoort nie te veel saak te maak nie, behalwe die rigting van die skuinsstrepe in die lêerpaaie (OS X: /, Windows:)

Let wel: As gevolg van 'n fout, word die inkepings in die kode om een of ander rede nie getoon nie. Daar sal gevolglik geen inkepings in die kode verskyn nie, maar dit is teenwoordig in die Python -lêers wat ek aan die einde aangeheg het en in die meegaande foto's. Moet net nie die kode direk uit die teks vertoon nie, want dit sal nie werk nie as gevolg van die gebrek aan inkepings

As u al die afhanklikes geïnstalleer het, gaan ons na stap 1.

Stap 1: Skryf die opstellêer

Die opstel lêer skryf
Die opstel lêer skryf
Die opstel lêer skryf
Die opstel lêer skryf
Die opstel lêer skryf
Die opstel lêer skryf
Die opstel lêer skryf
Die opstel lêer skryf

Een van die faktore wat dit so veilig maak, is die gebruik van hashes om die wagwoord na te gaan. Die opstellêer (ek noem my setupsafe.py) gaan:

- Skep 'n gids en dummy -lêers vir die wagwoord

- Stel die wagwoord in

- Stel die lêernommer in

- Slaan die wagwoord in

Eerstens gaan ons ons afhanklikes invoer:

vanaf sys import *

invoer os

invoer ewekansig

invoer hashlib

Vervolgens sal ons 'n gids skep vir die hash -wagwoord en die dummy -lêers:

probeer: indien nie os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

behalwe OSError:

print ("Fout tydens die skep van 'n gids")

Hierdie kode skep 'n gids met die naam safesetup (tensy dit reeds bestaan).

Hierna gaan ons die wagwoord stel en 'n ewekansige getal tussen 1 en 100 genereer as 'n manier om deur die dummy -lêers te navigeer:

globale wagwoordpasswoord = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Noudat ons ons wagwoord en ons lêernommer het, gaan ons 99 dummy -lêers in 'n veilige opstel skep, en 'n regte lêer wat ons wagwoord -hash bevat:

vir x in reeks (101): as (x! = n):

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

f.close ()

anders:

wagwoord = hashlib.sha256 (wagwoord).hexdigest ()

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

f. skryf (wagwoord)

f.close ()

druk (n)

Die werklike lêer word die heelgetal n genoem. Hierdie lêer bevat ons wagwoord nadat dit met die sha256 -algoritme gehas is (hierdie hash -algoritme word wyd gebruik in kripto -geldeenhede, veral Bitcoin).

Onthou wat n is (dit sal in die konsole gedruk word), aangesien dit net so belangrik is as die wagwoord.

Dit is al wat ons nodig het vir ons opstelprogram, so ons gaan nou oor na die enkripsie/dekripteerprogram.

Stap 2: Die enkripsie-/dekripteringslêer

Die enkripsie/dekripteer lêer
Die enkripsie/dekripteer lêer
Die enkripsie-/dekripteringslêer
Die enkripsie-/dekripteringslêer
Die enkripsie-/dekripteringslêer
Die enkripsie-/dekripteringslêer

Die instellingsgedeelte van die hooflêer voer die afhanklikes in, haas die ingevoerde wagwoord en haal die regte wagwoord -hash met behulp van die ingevoerde lêernommer.

Eerstens, die afhanklikes:

van sys invoer *invoer os

voer pyAesCrypt in

invoer hashlib

Vervolgens moet die ingevoerde wagwoord ingeplaas word:

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

Laastens, die herwinning van die wagwoord:

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

Die tweede afdeling van die enkripsielêer vergelyk die hashes, bepaal die waarheid van die vergelyking en gebruik die AESCrypt python -biblioteek om u lêer van u keuse te enkripteer of te ontsyfer. Dit is 'n taamlik groot stuk kode, maar ek sal dit opdeel:

if (wagwoord == hash): druk ("Wagwoord aanvaar")

bufferSize = 64 * 1024

operasie = str (invoer ("Herstel of versleut u lêers? (r of e)"))

as (operasie == 'r'):

file_name = str (invoer ("Lêer om op te haal:"))

pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, password, bufferSize)

os.remove ((lêernaam + ".aes"))

elif (operasie == 'e'):

file_name = str (input ("File to encrypt:"))

pyAesCrypt.encryptFile (lêernaam, (lêernaam + ".aes"), wagwoord, bufferSize)

os.remove (lêernaam)

anders:

print ("Fout: verkeerde invoer")

anders:

print ("Toegang geweier")

Die eerste if -stelling bepaal of die wagwoorde wat ingepak is, ooreenstem. As dit die geval is, word die vraag gevra of u lêers wil versleut of gekodeerde lêers wil oplaai. Afhangende van u invoer, versleut of dekripteer dit die gegewe lêer. As u gevra word om die naam van die lêer te gee, moet u die pad spesifiseer tensy die lêer in dieselfde gids as die python -program is. Die program verwyder die lêer in sy vorige toestand, vervang dit met 'n versleutelde.aes -lêer, of ontsyfer dit en vervang dit met die oorspronklike lêer.

In die toekoms kan ek dit opdateer om gesigsherkenning met behulp van die Python OpenCV -biblioteek in te sluit, maar wagwoorde moet nou voldoende wees.

Stap 3: Werk van lêers

Volg die volgende stappe om die opstellêer uit te voer:

1. Tik die terminale in:

python3 -gids/setupname.py -wagwoord (gids, instellingsnaam en wagwoord vervang met hul onderskeie waardes)

2. Die terminaal sal u lêernommer uitvoer. Hou dit.

Volg die volgende stappe om die enkripsie-/dekripteringsprogram uit te voer:

1. Tik die terminale in:

python3 -gids/lêernaam.py wagwoord lêernommer (vervang gids, lêernaam, wagwoord en lêernommer met hul onderskeie waardes)

2. Die terminale aanvaar of verwerp dan u wagwoord. As dit verwerp word, probeer weer en maak seker dat u die regte waardes invoer. Sodra toegang verleen is, sal die terminaal u vra of u 'n lêer wil enkripteer of 'n lêer wil oplaai. Tik e om 'n lêer te enkripteer en om 'n geïnkripteer lêer op te haal, tik r.

3. U sal dan gevra word om die lêernaam te verskaf. Onthou om die gids van die lêer sowel as die naam en die lêeruitbreiding te verskaf. As u egter 'n lêer ontsyfer, moet u nie die.aes -deel van die uitbreiding tik nie, aangesien die kode daarvoor verantwoordelik is.

4. Die program versleutel of ontsyfer dan die gegewe lêer en verwyder die lêer in sy vorige toestand (behou die geënkripteer of ontsyferde lêer).

Voila! Dankie dat u so ver in die instruksies gekom het, ek weet dat die lees van kode -tutoriale nie die lekkerste is nie. Die python -lêers word in hierdie stap ingesluit, vir diegene wat dit wil probeer. Weereens, dankie dat u gelees het, en ek wens u baie sterkte toe met u toekomstige kodering.

Aanbeveel: