Mövzunu Açan
#0
Veri güvenliği, modern bilgi teknolojileri dünyasında kritik bir öneme sahiptir. Özellikle yedekleme işlemleri sırasında verilerin şifrelenmesi, yetkisiz erişimlere karşı koruma sağlar. Bu yazıda, yedeğe alınan dosyaların güvenli bir şekilde şifrelenmesi için basit bir Python scripti örneği sunacağım.
Python dilini kullanarak AES (Advanced Encryption Standard) algoritmasını temel alan bir şifreleme işlemi gerçekleştireceğiz. AES, güçlü bir şifreleme standardıdır ve birçok uygulamada yaygın olarak kullanılmaktadır.
İlk olarak, gerekli kütüphaneleri yükleyelim:
Ardından, aşağıdaki Python kodunu kullanarak dosya şifreleme ve şifre çözme işlemlerini gerçekleştiren bir script oluşturabiliriz:
Bu script, bir dosyayı şifrelemek ve şifre çözmek için gerekli temel işlevleri sağlamaktadır. Şifreleme sırasında, dosyanın içeriği AES algoritması ile güvenli bir şekilde şifrelenir ve şifreli dosya ".enc" uzantısı ile kaydedilir. Şifre çözme işlemi ise şifreli dosyadan IV'yi okuyarak başlar ve orijinal içeriği geri elde eder.
Yedekleme ve veri güvenliği alanında dikkat edilmesi gereken en önemli noktaların başında şifreleme yöntemlerinin seçimi ve anahtar yönetimi gelmektedir. Yukarıdaki örnek, temel bir yaklaşım sunmakta; daha gelişmiş güvenlik ihtiyaçları için ek önlemler alınması tavsiye edilmektedir.
Python dilini kullanarak AES (Advanced Encryption Standard) algoritmasını temel alan bir şifreleme işlemi gerçekleştireceğiz. AES, güçlü bir şifreleme standardıdır ve birçok uygulamada yaygın olarak kullanılmaktadır.
İlk olarak, gerekli kütüphaneleri yükleyelim:
CODE
1pip install pycryptodomeArdından, aşağıdaki Python kodunu kullanarak dosya şifreleme ve şifre çözme işlemlerini gerçekleştiren bir script oluşturabiliriz:
CODE
12345678910111213141516171819202122232425262728293031323334from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import os
# Şifreleme fonksiyonu
def encrypt_file(file_name, key):
cipher = AES.new(key, AES.MODE_CBC)
with open(file_name, 'rb') as file:
plaintext = file.read()
ciphertext = cipher.encrypt(pad(plaintext, AES.block_size))
# Şifrelenmiş veriyi dosyaya yaz
with open(file_name + '.enc', 'wb') as file:
file.write(cipher.iv) # IV'yi dosyaya ekle
file.write(ciphertext)
# Şifre çözme fonksiyonu
def decrypt_file(file_name, key):
with open(file_name, 'rb') as file:
iv = file.read(16) # IV'yi oku
ciphertext = file.read()
cipher = AES.new(key, AES.MODE_CBC, iv)
plaintext = unpad(cipher.decrypt(ciphertext), AES.block_size)
# Çözülmüş veriyi dosyaya yaz
with open(file_name[:-4], 'wb') as file:
file.write(plaintext)
# Kullanım örneği
if __name__ == "__main__":
key = os.urandom(16) # 16 byte uzunluğunda rastgele bir anahtar oluştur
encrypt_file('example.txt', key) # Şifrele
decrypt_file('example.txt.enc', key) # Şifre çözBu script, bir dosyayı şifrelemek ve şifre çözmek için gerekli temel işlevleri sağlamaktadır. Şifreleme sırasında, dosyanın içeriği AES algoritması ile güvenli bir şekilde şifrelenir ve şifreli dosya ".enc" uzantısı ile kaydedilir. Şifre çözme işlemi ise şifreli dosyadan IV'yi okuyarak başlar ve orijinal içeriği geri elde eder.
Yedekleme ve veri güvenliği alanında dikkat edilmesi gereken en önemli noktaların başında şifreleme yöntemlerinin seçimi ve anahtar yönetimi gelmektedir. Yukarıdaki örnek, temel bir yaklaşım sunmakta; daha gelişmiş güvenlik ihtiyaçları için ek önlemler alınması tavsiye edilmektedir.