Sida loo Qarsho loona Qarxiyo Xogta Python iyadoo la adeegsanayo Maktabadda 'Cryptography Library'

Casharkaan waxaad ku baran doontaa sida looqoro ama looqariyo xogta, tusaale. xarig qoraal ah adoo adeegsanaya maktabadda loo yaqaan 'cryptography library' ee Python.

Qarsoodi waa hab u sameynta macluumaadka qaab sidan oo kaliya dhinacyada idman ay u heli karaan. Waxay noo oggolaaneysaa inaan si ammaan ah u ilaalino xogta aan dooneyno in qof uun arko ama arko.

La xiriira:


Tusaalahan, waxaan adeegsan doonnaa qaabab isku dheelitiran, oo macnaheedu yahay isla furaha aan u adeegsan jirnay xogta, sidoo kale waxaa loo isticmaali karaa si loo khafiifiyo.

Maktabadda loo yaqaan 'cryptography library' ee aan halkan ku isticmaalno waxaa lagu dhisay dusha sare ee algorithm-ka AES.




Ku kaydso Macluumaadka Python

Marka hore, waxaan u baahanahay inaan rakibno maktabadda 'cryptography':

pip3 install cryptography

Laybareeriga loo yaqaan 'cryptography library', waxaan u baahannahay inaan ka soo degno Fernet oo aad bilowdid inaad soo saarto fure - furahan waxaa looga baahan yahay qaabdhismeedka sirta / samaynta.

Abuur Fure

Si loo abuuro furaha, waxaan ugu yeernaa generate_key() habka:

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)

Waxaan kaliya u baahanahay inaan fulino habka kor ku xusan hal mar si aan u abuurno fure.


Fiiro gaar ah:Waxaad u baahan tahay inaad furahaas dhigato meel aamin ah. Haddii furaha kaa lumo, ma awoodi doontid inaad tirtirto xogta ku qarsoon furahan.

Furaha Furaha

Markaan soosaarnay fure, waxaan ubaahanahay inaan kufuro furaha qaabkeena si aan uqarino xogta:

def load_key():
'''
Loads the key named `secret.key` from the current directory.
'''
return open('secret.key', 'rb').read()

Qarsoodi fariin

Hadda, waxaan diyaar u nahay inaan fariin sir ah. Tani waa geedi socod saddex tallaabo ah:

  • 1 - farriinta farriinta
  • 2 - bilow fasalka Fernet
  • 3 - u gudbi farriinta codeynta loo diray encrypt() habka

farriinta farriinta:

message = 'message I want to encrypt'.encode()

bilow fasalka Fernet:


f = Fernet(key)

sir fariinta:

encrypted_message = f.encrypt(message)

Tusaalaha Xeerka oo Buuxda

Hoos waxaa ku qoran tusaale buuxa oo shaqo ah oo ku saabsan sirta farriinta 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')

Wax soo saarka:

b'gAAAAABesCUIAcM8M-_Ik_-I1-JD0AzLZU8A8-AJITYCp9Mc33JaHMnYmRedtwC8LLcYk9zpTqYSaDaqFUgfz-tcHZ2TQjAgKKnIWJ2ae9GDoea6tw8XeJ4='

Qarxi Xogta Python

Si loo tirtiro farriinta, waxaan kaliya u yeernaa decrypt() Habka ka socda Fernet maktabad Xusuusnow, waxaan sidoo kale u baahanahay inaan sidoo kale rarno furaha, maxaa yeelay furaha ayaa loo baahan yahay si lookala diro fariinta.


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=')

Wax soo saarka:

encrypt this message