Python ile Şifreleme Nedir?
Şifreleme, veriyi okunamaz hale getiren bir süreçtir. Amaç, yalnızca yetkili kişilerin bu veriye ulaşabilmesini sağlamaktır. Python, veri şifrelemek ve şifre çözmek için kullanılan birçok güçlü kütüphaneye sahiptir. Bu yazıda, şifreleme dünyasına adım atacak ve Python kullanarak bu işlemleri nasıl gerçekleştirebileceğimizi öğrenerek güvenli bir dijital ortam oluşturacağız.
İlk adım olarak, Python’un `cryptography` kütüphanesini inceleyeceğiz. Bu kütüphane, şifreleme işlemleri için kullanıcı dostu ve güvenli bir ortam sağlar. İlk olarak, verinizi basitçe şifreleyebilmeniz için gerekli olan temel adımları görelim.
```python
from cryptography.fernet import Fernet
# Anahtar oluşturma
anahtar = Fernet.generate_key()
f = Fernet(anahtar)
# Şifreleme
veri = b"Bu bir gizli mesajdır"
sifreli_veri = f.encrypt(veri)
print("Şifrelenmiş Veri:", sifreli_veri)
# Şifreyi çözme
cozulmus_veri = f.decrypt(sifreli_veri)
print("Çözülmüş Veri:", cozulmus_veri.decode())
```
Bu basit kod ile, şifrelenmiş verinin nasıl oluşturulup çözüldüğünü görebilirsiniz. Python ile şifreleme, temel anlamda bu kadar basittir. Ancak, elbette daha güvenli ve karmaşık yöntemlere de geçiş yapabiliriz.
2. Orta Düzey: RSA Şifreleme
RSA, günümüzde en yaygın kullanılan şifreleme algoritmalarından biridir. Python’da RSA şifrelemesi yapmak için `pycryptodome` kütüphanesini kullanabiliriz. RSA, özellikle büyük veri setlerini güvenli bir şekilde şifrelemek için idealdir.
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Random import get_random_bytes
# RSA anahtar çifti oluşturma
anahtar = RSA.generate(2048)
public_key = anahtar.publickey()
private_key = anahtar
# Veriyi şifreleme
data = b"Bu bir RSA şifreleme örneğidir"
cipher = PKCS1_OAEP.new(public_key)
encrypted_data = cipher.encrypt(data)
print("Şifrelenmiş Veri:", encrypted_data)
# Veriyi çözme
cipher2 = PKCS1_OAEP.new(private_key)
decrypted_data = cipher2.decrypt(encrypted_data)
print("Çözülmüş Veri:", decrypted_data.decode())
```
RSA algoritması, özellikle verinin gizliliğini korurken daha büyük verilerle çalışırken işinizi kolaylaştırır. Bu tip şifreleme, finansal bilgilerin güvenliğini sağlamak için sıklıkla kullanılır.
3. İleri Düzey: AES ile Veri Şifreleme
AES (Advanced Encryption Standard), modern şifreleme yöntemlerinin kralıdır. Büyük veri setlerini hızlı ve güvenli bir şekilde şifrelemek için kullanılır. Python'da AES şifrelemesi yapmak için yine `pycryptodome` kütüphanesini kullanacağız.
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
# AES Anahtarı ve Verisi
key = get_random_bytes(16) # 128-bit anahtar
data = b"Bu AES şifreleme örneğidir"
# Şifreleme
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(data, AES.block_size))
iv = cipher.iv
print("Şifrelenmiş Veri:", ct_bytes)
# Şifreyi çözme
cipher = AES.new(key, AES.MODE_CBC, iv=iv)
pt = unpad(cipher.decrypt(ct_bytes), AES.block_size)
print("Çözülmüş Veri:", pt.decode())
```
AES şifrelemesi, özellikle çok büyük veri setlerini güvenli bir şekilde şifrelemek için son derece etkilidir. Bu yöntem, devlet dairelerinden büyük şirketlere kadar geniş bir kullanıcı yelpazesinde kullanılmaktadır.