Kule tutorial uya kufunda indlela yokubhala kunye nokuchithwa kwedatha, umz. umtya wokubhaliweyo usebenzisa ilayibrari ye-cryptography ePython.
Encryption yinkqubo yokufaka iikhowudi kulwazi ngendlela enokuthi ifumaneke kuphela kumaqela agunyazisiweyo. Isivumela ukuba sikhusele ngokukhuselekileyo idatha esingafuni ukuba nabani na ayibone okanye ayifikelele.
Idibeneyo:
Kulo mzekelo, siya kuba sisebenzisa ukubethela okuhambelanayo, oku kuthetha ukuba isitshixo esifanayo esasisebenzisa ukubethela idatha, iyasetyenziselwa ukuchithwa.
Ilayibrari ye-cryptography esiyisebenzisayo apha yakhelwe ngaphezulu kwe-AES algorithm.
Okokuqala, kufuneka sifake ithala leencwadi lokufihla:
pip3 install cryptography
Ukusuka kwilayibrari ye-cryptography, kufuneka singenise Fernet
kwaye uqalise ukuvelisa isitshixo-eli qhosha liyimfuneko kulungelelwaniso lokubhaliweyo / ukuguqulela.
Ukuvelisa isitshixo, sibiza generate_key()
indlela:
from cryptography.fernet import Fernet def generate_key():
'''
Generates a key and save it into a file
'''
key = Fernet.generate_key()
with open('secret.key', 'wb') as key_file:
key_file.write(key)
Kufuneka sisebenzise le ndlela ingentla kube kanye ukuvelisa isitshixo.
Nje ukuba senze isitshixo, kufuneka silayishe isitshixo kwindlela yethu ukuze sibethele idatha:
def load_key():
'''
Loads the key named `secret.key` from the current directory.
'''
return open('secret.key', 'rb').read()
Ngoku, sikulungele ukubethela umyalezo. Le yinkqubo yamanyathelo amathathu:
encrypt()
indlelakhowuda umyalezo:
message = 'message I want to encrypt'.encode()
Qalisa iklasi yeFernet:
f = Fernet(key)
Bethela umyalezo:
encrypted_message = f.encrypt(message)
Apha ngezantsi ngumzekelo opheleleyo wokusebenza ngokufihla umyalezo kwi-python:
from cryptography.fernet import Fernet def generate_key():
'''
Generates a key and save it into a file
'''
key = Fernet.generate_key()
with open('secret.key', 'wb') as key_file:
key_file.write(key) def load_key():
'''
Load the previously generated key
'''
return open('secret.key', 'rb').read() def encrypt_message(message):
'''
Encrypts a message
'''
key = load_key()
encoded_message = message.encode()
f = Fernet(key)
encrypted_message = f.encrypt(encoded_message)
print(encrypted_message) if __name__ == '__main__':
encrypt_message('encrypt this message')
Iziphumo:
b'gAAAAABesCUIAcM8M-_Ik_-I1-JD0AzLZU8A8-AJITYCp9Mc33JaHMnYmRedtwC8LLcYk9zpTqYSaDaqFUgfz-tcHZ2TQjAgKKnIWJ2ae9GDoea6tw8XeJ4='
Ukucacisa umyalezo, sibiza nje decrypt()
indlela evela Fernet
Ithala leencwadi. Khumbula, nathi kufuneka silayishe isitshixo, kuba isitshixo siyafuneka ukuze uguqule umyalezo.
from cryptography.fernet import Fernet def load_key():
'''
Load the previously generated key
'''
return open('secret.key', 'rb').read() def decrypt_message(encrypted_message):
'''
Decrypts an encrypted message
'''
key = load_key()
f = Fernet(key)
decrypted_message = f.decrypt(encrypted_message)
print(decrypted_message.decode()) if __name__ == '__main__':
decrypt_message(b'gAAAAABesCUIAcM8M-_Ik_-I1-JD0AzLZU8A8-AJITYCp9Mc33JaHMnYmRedtwC8LLcYk9zpTqYSaDaqFUgfz-tcHZ2TQjAgKKnIWJ2ae9GDoea6tw8XeJ4=')
Iziphumo:
encrypt this message