Criptarea și criptografia în Python

După cum puteți vedea, am creat instanța hash și am denumit metoda digestă în același timp. Apoi, afișăm hash-ul nostru să o privim. Personal, folosesc un hash sha1, deoarece hash-ul său este suficient de scurt și se încadrează perfect în pagină. Dar, în același timp, nu este foarte sigur. astfel încât să aveți libertatea de a alege ceea ce este convenabil pentru dvs.

Ieșirea cheii

Python are un suport foarte limitat pentru ieșirea cheii, încorporată în biblioteca standard. De fapt, singura metodă oferită de hashlib este pbkdf2_hmac. care este o funcție bazată pe parolă a ieșirii cheii PKCS # 5. Utilizează HMAC ca funcție pseudo-aleatoare. Puteți folosi ceva asemănător cu parcurgerea parolei, deoarece acceptă sare și iterații. De exemplu, dacă intenționați să utilizați SHA-256. este posibil să aveți nevoie de sare cu cel puțin 16 biți și 100.000 de iterații. Fiind o referință rapidă, sarea este doar date aleatoare pe care le folosiți ca un add-on în hash, pentru a complica decriptarea parolei. În general, vă protejează parola de atacurile dicționarului și de tabelele curcubeu temporizate. Să examinăm un exemplu:

f. scrie (cheia publickey () .exportKey ())

Mai întâi importăm RSA de la Crypto.PublicKey. Apoi, vom crea un cod de acces primitiv. Apoi, generăm o cheie RSA pentru 2048 de biți. Acum ajungem la o parte interesantă. Pentru a genera o cheie privată. trebuie să sunăm metoda exportKey a cheii RSA și să ne transmitem codul nostru de acces, care va fi utilizat de standardul PKCS, a cărui schemă de criptare va fi utilizată pentru a ne proteja cheia privată. După aceea, scriem fișierul pe disc. Apoi, vom crea cheia privată folosind metoda publickey a cheii noastre RSA. Am folosit o comandă rapidă în această parte a codului, asociind metoda exportKey cu metoda publickey pentru a scrie fișierul pe disc.

Criptare fișiere

Acum avem la dispoziție chei private și publice. astfel încât să putem cripta unele date și să le scriem într-un fișier. Iată un exemplu destul de simplu:

Dacă înțelegeți exemplul anterior, atunci acest cod ar trebui să fie foarte simplu de analizat. În acest caz, deschidem fișierul criptat pentru citire în modul binar. Apoi, importăm cheia privată. Rețineți că atunci când importați o cheie privată, trebuie să îi acordați un cod de acces. În caz contrar, apare o eroare. Apoi, am citit fișierul nostru. Veți observa că mai întâi citim cheia privată, apoi 16 octeți pentru nonce, urmată de 16 octeți, care sunt tag-ul, și în final restul fișierului, care este datele noastre. Apoi, trebuie să decriptați cheia sesiunii, să re-creați cheia AES și să decriptați datele. Puteți utiliza PyCryptodome într-o gamă mult mai largă de cazuri. Cu toate acestea, trebuie să mergem mai departe și să vedem ce altceva putem face pentru nevoile noastre criptografice în Python.

Criptografia pachetelor

Pachetul de criptografie este destinat să fie un "criptograf pentru oameni", precum și biblioteca de solicitări este "HTTP pentru oameni". Linia de jos este că aveți nevoie pentru a dezvolta retete simple criptografice, care sunt atât sigur și ușor de utilizat. Dacă este necesar, puteți merge la primitive criptografice de nivel scăzut, pentru care trebuie doar să știți ce faceți, altfel veți crea ceva care este în mod evident inutil în contextul protecției. Dacă executați Python 3.5 Windows. puteți instala acest pachet folosind pip după cum urmează:

print (decrypted_text) # 'Mesajul meu foarte secret'

Să rezumăm rezultatele

În acest articol am trecut destul de mult peste suprafața întrebării. "Cum și ce să faceți cu pachetele PyCryptodome și criptografie? “. Am examinat un număr corect de opțiuni pentru aplicarea acestor pachete pentru criptarea și decriptarea șirurilor și fișierelor. Asigurați-vă că aveți nevoie de timp pentru a documenta. Înainte de a începe să experimentați informațiile din acest articol.

Articole similare