kullanici1
Mart 5, 2026

Bir meyve sıkacağını düşünün. İçine elma, armut ve çilek atıyorsunuz. Makine çalışıyor ve ortaya karışık bir meyve suyu çıkıyor. Şimdi size bu meyve suyunu verip, onu tekrar elma, armut ve çilek haline getirmenizi istesem? Bu imkansızdır. İşte Hashing (Özetleme) fonksiyonları, dijital verinin meyve sıkacağıdır. Herhangi bir boyuttaki veriyi (bir parola veya devasa bir ansiklopedi) alır, karıştırır ve sabit uzunlukta, benzersiz bir karakter dizisine dönüştürür. Ve bu işlem tek yönlüdür; özetten geriye dönüp orijinal veriyi bulamazsınız.
Siber güvenlik dünyasında “Şifreleme” (Encryption) ile “Özetleme” (Hashing) en çok karıştırılan iki kavramdır. Şifreleme bir kasadır; anahtarı olan açar. Hashing ise bir parmak izidir; verinin kendisi değil, kimliğidir. Bugün internet bankacılığına girerken, Bitcoin transfer ederken veya bir dosya indirirken güvenliğinizi sağlayan görünmez kahraman, özellikle SHA 256 algoritmasıdır. Sektördeki en büyük yanılgı, hashing’in sadece parolaları saklamak için kullanıldığıdır. Oysa o, verinin Bütünlüğünün (Integrity) yegane garantisidir. Bu kapsamlı rehberde; Çığ Etkisi’nin (Avalanche Effect) büyüsünü, MD5 ve SHA-1’in çöküşünü getiren “Çakışma” (Collision) kabusunu, Bitcoin madenciliğinin arkasındaki matematiği ve parolalarınızı Rainbow Table saldırılarından koruyan “Tuzlama” (Salting) sanatını en ince teknik detayına kadar inceleyeceğiz.
Hash fonksiyonu, değişken uzunluktaki bir girdiyi (Input) alıp, sabit uzunluktaki bir çıktıya (Output/Digest) dönüştüren matematiksel bir algoritmadır.
Güvenli bir kriptografik hash fonksiyonu şu 5 temel özelliğe sahip olmalıdır:
Bu farkı anlamak, bir güvenlikçinin ilk dersidir.
Analoji: Şifreleme, bir mektubu zarfa koyup kilitlemektir. Hashing ise o mektubun dijital fotoğrafını çekip, parmak izini alıp, mektubu imha etmektir.
NSA (ABD Ulusal Güvenlik Ajansı) tarafından tasarlanan ve 2001 yılında yayınlanan SHA-2 ailesinin bir üyesidir. Bugün endüstri standardıdır.
Teknik Anatomi
SHA-256’nın gücü, girdideki değişimin çıktıya yansımasındadır.
Gelin bir deney yapalım:
Gördüğünüz gibi, Hash değerleri birbirine hiç benzemez. Eğer benzese (yani sadece 1-2 karakter değişse), saldırganlar orijinal veriyi tahmin edebilirdi. Bu özellik, verinin bütünlüğünü kanıtlar. Bir hacker, indirdiğiniz dosyanın içine 1 satırlık virüs kodu eklese bile, dosyanın Hash değeri tamamen değişir ve siz dosyanın bozuk olduğunu anlarsınız.
Bir Hash fonksiyonunun ölümü, “Çakışma” bulunduğu gündür. Çakışma, iki farklı dosyanın (Dosya A ve Dosya B) aynı Hash değerini üretmesidir.
Güvercin Yuvası İlkesi (Pigeonhole Principle)
Girdiler sonsuzdur (istediğiniz uzunlukta metin yazabilirsiniz), ancak çıktılar sınırlıdır (256 bit). Matematiksel olarak, zorunlu olarak çakışmalar vardır. Ancak iyi bir algoritmada bu çakışmayı bulmak imkansız olmalıdır.
MD5 ve SHA-1’in Ölümü
SHA-256’da henüz bir çakışma bulunmamıştır. Bulunduğu gün, internetin güvenliği çöker ve SHA-3’e geçiş başlar.
Hashing hayatımızın her yerindedir.
1. Parola Saklama
Veritabanlarında parolalar asla açık metin (Plaintext) olarak saklanmaz. 123456 saklanmaz, onun Hash’i saklanır.
2. Dijital İmzalar
Bir sözleşmeyi imzalarken, 100 sayfalık dosyanın tamamı şifrelenmez (çok yavaştır).
3. Blockchain ve Bitcoin
Bitcoin madenciliği (Proof of Work), aslında bir “Hash Bulmaca”sıdır.
Eğer veritabanında sadece Hash saklıyorsanız (MD5(123456)), hala güvende değilsiniz.
Rainbow Tables (Gökkuşağı Tabloları)
Hackerlar, olası tüm parolaların (a, aa, ab… 123456) Hash’lerini önceden hesaplayıp devasa tablolarda (Rainbow Tables) saklarlar. Veritabanını çaldıklarında, sizin Hash’inizi bu tabloda ararlar ve saniyede milyonlarca parolayı kırarlar.
Çözüm: Tuzlama (Salting)
Parolayı hashlemeden önce, sonuna rastgele karakterler (Salt) eklenir.
SHA-256 şu an güvenli olsa da, teknoloji durmaz.
Hayır. Matematiksel olarak imkansızdır. Veri kaybolmuştur. Ancak “Brute Force” (deneme-yanılma) ile, o Hash’i üreten girdiyi tahmin etmeye çalışabilirsiniz.
Güvenlik gerektirmeyen yerlerde (örneğin veritabanında mükerrer kayıt kontrolü veya basit dosya bütünlüğü) hala hızlı olduğu için kullanılır. Ancak güvenlik (parola, imza) için kesinlikle yasaktır.
İndirdiğiniz dosya yolda bozulmuş olabilir (eksik inmiş olabilir) veya bir hacker tarafından değiştirilip içine virüs konmuş olabilir (Man-in-the-Middle). Sitedeki SHA-256 değeri ile dosyanınki uyuşuyorsa, dosya %100 orijinaldir.
Bitcoin adresleri (Public Key) risk altındadır ama madencilik (Hashing) kısmı daha dirençlidir. Kuantum tehdidi büyürse, Bitcoin protokolü güncellenerek kuantum-dirençli algoritmalara geçebilir.
Şu an için endüstri standardı SHA-256 veya SHA-512’dir. Daha yüksek güvenlik için SHA-3 veya parola saklama özelinde Argon2 veya Bcrypt (bunlar yavaşlatılmış hash fonksiyonlarıdır) tercih edilmelidir.
Hashing, dijital dünyanın yerçekimidir. Onu görmeyiz ama her şey onun sayesinde yerinde durur. Dosyaların değişmediğinden, parolaların çalınmadığından ve paranın (kripto) sahte olmadığından emin olmamızı sağlar.
Bir yazılımcı veya güvenlik uzmanı olarak, “Hangi Hash’i kullanmalıyım?” sorusunun cevabı nettir: Asla MD5 veya SHA-1 kullanmayın. En az SHA-256 kullanın ve parolalar için mutlaka Tuzlama (Salting) yapın.
SiberTim olarak hatırlatırız; şifreleme veriyi saklar, hashing ise verinin “kendisi” olduğunu kanıtlar. Biri olmadan diğeri eksiktir.