Di vê tutoriyê de hûn ê fêr bibin ka meriv çawa şîfre û deşîfre dike, mînak. rêzek nivîsê ku li Python pirtûkxaneya şîfrekirinê bikar tîne.
Ryîfrekirin pêvajoyek şîfrekirina agahiyê ye bi rengek ku tenê aliyên rayedar pê bigihîjin. Ew dihêle ku em bi ewlehî daneyên ku em naxwazin tenê kes bibîne an bigihîje wan biparêze.
Girêdayî:
Di vê mînakê de, em ê şîfrekirina symetrîkî bikar bînin, ku tê wateya heman mifteya ku me daneyên şîfrekirinê bikar dianî, ji bo deşîfrekirinê jî bikêr tê.
Pirtûkxaneya şîfrekirinê ya ku em li vir bikar tînin li ser algorîtmaya AES-ê hatiye avakirin.
Ya yekem, em hewce ne ku pirtûkxaneya kriptografiyê saz bikin:
pip3 install cryptography
Ji pirtûkxaneya şîfrekirinê, pêdivî ye ku em Fernet
û dest bi hilberîna miftekê bikin - ev mifte ji bo şîfrekirin / deşîfrekirina simetrîk pêdivî ye.
Ji bo hilberandina miftekê, em ji generate_key()
| dibêjin awa:
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)
Em tenê hewce ne ku carek rêbaza jorîn biafirînin da ku mifteyek çêbikin.
Gava ku me mifteyek çêkir, ji bo ku em daneyê şîfre bikin, pêdivî ye ku em mifteyê di rêbaza xwe de barkirin.
def load_key():
'''
Loads the key named `secret.key` from the current directory.
'''
return open('secret.key', 'rb').read()
Naha, em amade ne ku peyamek şîfre bikin. Ev pêvajoyek sê gav e:
encrypt()
awapeyamê şîfre bikin:
message = 'message I want to encrypt'.encode()
destpêkirina çîna Fernet:
f = Fernet(key)
peyamê şîfre bikin:
encrypted_message = f.encrypt(message)
Li jêr mînakek xebata tam a şîfrekirina peyamek li python heye:
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')
Karûabr:
b'gAAAAABesCUIAcM8M-_Ik_-I1-JD0AzLZU8A8-AJITYCp9Mc33JaHMnYmRedtwC8LLcYk9zpTqYSaDaqFUgfz-tcHZ2TQjAgKKnIWJ2ae9GDoea6tw8XeJ4='
Ji bo deşîfrekirina peyamê, em tenê bang li decrypt()
. Dikin rêbaza ji Fernet
pirtûkxane. Bînin bîra xwe, divê em kilîtê jî barkirin, ji ber ku kilît ji bo deşîfrekirina peyamê hewce ye.
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=')
Karûabr:
encrypt this message