INHOUDSOPGAWE:
Video: Python -beveiligings- en dekripsiesagteware: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
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
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 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:
Gidse met Python sinchroniseer: 5 stappe
Gidse met Python sinchroniseer: hierdie instruksies sal u wys hoe u twee vouers (en alle gidse daarin) in ooreenstemming moet hou, sodat die een 'n direkte kopie van die ander is. Ideaal vir rugsteun van werk plaaslik, na 'n wolk-/netwerkbediener of 'n USB -skyf. Geen ervaring met programmering is nodig nie
Python Tic Tac Toe -spel: 4 stappe
Python Tic Tac Toe Game: python tic tac toe game hierdie speletjie is gemaak in python wat 'n rekenaartaal is, ek het 'n luislangredakteur genaamd: pycharm gebruik, u kan ook normale python -kode -redakteur gebruik
Atendente Automático Com Python No Google Colab: 5 stappe
Atendente Automático Com Python No Google Colab: Ongelooflik! Weet u hoe ons Guilherme, ons nie meer kan gebruik nie, kan ons ook op ChatBot gebruik word om 'n program vir Python of Google Colab te gebruik
Python -inleiding - Katsuhiko Matsuda en Edwin Cijo - Basies: 7 stappe
Python -inleiding - Katsuhiko Matsuda en Edwin Cijo - Basics: Hallo, ons is 2 studente in MYP 2. Ons wil u basiese beginsels leer hoe om Python te kodeer. Dit is in die laat 1980's geskep deur Guido van Rossum in Nederland. Dit is gemaak as 'n opvolger van die ABC -taal. Sy naam is " Python " want wanneer
QR -kode skandeerder met behulp van OpenCV in Python: 7 stappe
QR-kode skandeerder met behulp van OpenCV in Python: In vandag se wêreld sien ons dat QR-kode en strepieskode byna oral gebruik word, van die verpakking van die produk tot die aanlynbetalings, en nou sien ons QR-kodes selfs in die restaurant om die spyskaart te sien. twyfel of dit nou die groot gedagte is. Maar het jy al ooit