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ı:
Şifreyi çözmek için;
decrypted_message = f.decrypt(encrypted_message) print("<-----> Şifresi Çözülmüş Mesaj <----->") print(decrypted_message)
Kod Çıktısı:
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)