Python ile Veri Şifreleme ve Çözme: Fernet

Bu yazımda, Python’da cryptography kütüphanesi ile bir metin dizisi gibi verileri nasıl şifreleyeceğinizi ve şifresini nasıl çözeceğinizi göstereceğim.

Şifreleme, bilgileri yalnızca yetkili tarafların erişebileceği şekilde kodlama işlemidir. Kimsenin görmesini veya erişmesini istemediğimiz verileri güvenli bir şekilde korumamıza olanak tanır.

İlk olarak cryptography kütüphanesini indirmemiz gerekiyor.

Windows için;

pip install cryptography

Linux / macOS için;

pip3 install cryptography

Kurumları tamamladıktan sonra boş bir python dosyası oluşturun ve kütüphaneyi içeri aktarın.

from cryptography.fernet import Fernet

Ardından key’i bir dosyaya yazacak bir fonksiyon tanımlayacağız.

def write_key():
    key = Fernet.generate_key() # Key üretme
    with open("key.key", "wb") as key_file: # Key'in yazılacağı dosyayı açar
        key_file.write(key) # Key'i yazar

Key’in okunmasına ve bir değişkene atayacak bir fonksiyon yazıyoruz.

def load_key():
    return open("key.key", "rb").read() # Dosyayı açar, dosyada kayıtlı key'i okur ve return eder

Şimdi kullanıcı’nın mesaj girebileceği alan için input oluşturalım.

message = input("Şifrelenecek Mesaj: ").encode() # Mesajı alır ve şifreler

Şimdi anahtar dosyasına saklı bir key yazmamız gerekiyor. Bunu yalnızca bir kez çalıştıracağız ve sonra satırı yorumlayacağız çünkü kod her çalıştırıldığında aşağıya yeni bir key yazılmasını istemiyorum.

write_key() # Key'i key dosyasına yazar

Şimdi key’i key dosyasından yüklememiz gerekiyor. Ve bu işlemi bir değişkene atıyoruz.

key = load_key() # Key'i yükler ve değişkene atar

Yukarıda oluşturduğumuz değişkeni fernet ile başlatıyoruz.

f = Fernet(key)

Şimdi girilen mesajı şifreleyip yazdıralım.

encrypted_message = f.encrypt(message)
print(encrypted_message)

Kod Çıktısı:

python şifreleme

Şifreyi çözmek için;

decrypted_message = f.decrypt(encrypted_message)
print("<-----> Şifresi Çözülmüş Mesaj <----->")
print(decrypted_message)

Kod Çıktısı:

python fernet

Yani burada, önce kullanıcının girdiği mesaj şifrelenir ve yazdırılır. Daha sonra şifreyi çözer ve sonraki satıra yazdırır.
Tam Kod:
from cryptography.fernet import Fernet

def write_key():
    key = Fernet.generate_key() 
    with open("key.key", "wb") as key_file: 
        key_file.write(key) 

def load_key():
    return open("key.key", "rb").read() 

message = input("Şifrelenecek Mesaj: ").encode() 

write_key() 

key = load_key()

f = Fernet(key)

encrypted_message = f.encrypt(message)
print(encrypted_message)

decrypted_message = f.decrypt(encrypted_message)
print("<-----> Şifresi Çözülmüş Mesaj <----->")
print(decrypted_message)

 

Yorum Yap