[quote=Python dosya hash hesaplama]Python'da dosya bütünlüğünü kontrol etmek veya dosyanın benzersiz bir özetini almak için hash algoritmaları yaygın olarak kullanılır. Bu amaçla hashlib kütüphanesi temel araçtır ve MD5, SHA-1, SHA-256 gibi algoritmaları destekler. Dosya boyutu büyük olsa bile, hafıza kullanımı ve performans açısından dikkatli olmak gerekir. Bu noktada, dosyayı küçük parçalar halinde okuyup hash hesaplamak en uygun yöntemdir.
İlk olarak, hashlib modülü içe aktarılır. Daha sonra, dosyayı binary modda açıp, belirli bir blok boyutuyla (örneğin 4KB veya 8KB) okuma yapılarak her parçadan hash güncellenir. Bu, büyük dosyalar için RAM tüketimini azaltır ve işlemi hızlandırır. Aşağıda temel bir örnek kod yer almaktadır:
12345678910111213141516
import hashlib
def hash_dosya(dosya_yolu, algoritma='sha256'):
hash_obj = hashlib.new(algoritma)
blok_boyutu = 65536 # 64KB
with open(dosya_yolu, 'rb') as dosya:
while True:
blok = dosya.read(blok_boyutu)
if not blok:
break
hash_obj.update(blok)
return hash_obj.hexdigest()
[b]Kullanım:[/b]
[b]print(hash_dosya('ornek_dosya.txt', 'sha256'))[/b]
Bu fonksiyon, dosya yolunu ve tercih edilen hash algoritmasını parametre alır ve sonucu hexadecimal biçimde döner. Algoritma olarak MD5, SHA-1 veya SHA-256 kullanılabilir. Güvenlik açısından, MD5 ve SHA-1 artık zayıf kabul edildiğinden SHA-256 tercih edilmelidir. Ayrıca, bu yöntem özellikle veri bütünlüğü doğrulama, dosya karşılaştırması veya dijital imza öncesi özet çıkarma işlemlerinde kullanılır.
Hash hesaplama, sadece dosya doğrulama değil, aynı zamanda dijital güvenlik ve siber saldırılara karşı koruma alanlarında da kritik öneme sahiptir. Bu nedenle, doğru algoritma ve uygun uygulama yöntemlerini kullanmak, sistem güvenliği açısından temel bir gerekliliktir.