SHA-256 Hash Üretici
Herhangi bir metni girin ve anında SHA-256 hash değerini alın — sabit 256 bitlik (64 onaltılık karakterlik) bir özet. Sağlama (checksum) değerleri, bütünlük doğrulama ve veri parmak izi için kullanışlıdır.
SHA-256 Hash Üretin
SHA-256 Hash Formülü
Burada:
- \(M\) — UTF-8 ile kodlanmış ve 512 bitin katına tamamlanan (padding uygulanan) girdi mesajı
- \(M^{(i)}\) — \(i\). 512 bitlik mesaj bloğu
- \(H^{(0)}\) — FIPS 180-4 standardında tanımlanan sekiz başlangıç hash değeri
- \(\text{compress}\) — sıkıştırma fonksiyonu: \(a\) ile \(h\) arasındaki işleme değişkenlerine uygulanan 64 tur modüler toplama, döndürme (rotasyon) ve bit düzeyinde işlem
- \(H_j^{(N)}\) — tüm \(N\) blok işlendikten sonraki son durumun sekiz 32 bitlik kelimesi
- \(\|\) — birleştirme; sekiz 32 bitlik kelime birleştirilerek 256 bitlik özet oluşturulur
Basit bir aritmetik formülden farklı olarak SHA-256, yinelemeli (iteratif) bir algoritmadır: mesaj 512 bitlik bloklara bölünür, her blok 64 tur bit düzeyinde işlemle iç duruma karıştırılır ve son durum 64 karakterlik bir onaltılık dizge olarak çıktı verilir.
SHA-256 Hash – Hesaplama Örneği
Örnek: varsayılan girdi metni Hello world! — hesaplayıcıda önceden doldurulmuş aynı değerdir, böylece bu sonucu yeniden üretebilirsiniz.
\[ \text{SHA-256}(\texttt{"Hello world!"}) = \texttt{c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a} \]
Sonuç: 64 karakterlik onaltılık özet: c0535e4be2b79ffd93291305436bf889314e4a3faec05ffcbb7df31ad9e51a
Girdide çok küçük bir değişikliğin — örneğin tek bir karakterin eklenmesi veya çıkarılmasının — tamamen farklı bir hash ürettiğine dikkat edin. Bu, çığ etkisi (avalanche effect) olarak bilinir ve güvenli hash fonksiyonlarının belirleyici bir özelliğidir.
SHA-256 Hash Hesaplayıcı Nasıl Kullanılır?
- Metninizi Hash'lenecek Metin alanına girin veya yapıştırın. Satır sonları ve Unicode karakterler dahil her metin kabul edilir; bunlar UTF-8 olarak işlenir.
- Hesaplama otomatik çalışır — basmanız gereken bir düğme yoktur. Sonuç, Hash Sonucu altında hemen görünür.
- SHA-256 Hash değerini (64 karakterlik onaltılık dizge) kopyalama düğmesiyle kopyalayın ve ihtiyaç duyduğunuz her yerde kullanın.
- Farklı bir metni hash'lemek için girdiyi değiştirmeniz yeterlidir; hash değeri gerçek zamanlı olarak güncellenir.
SHA-256 Nedir?
SHA-256, ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından FIPS 180-4 standardında yayımlanan SHA-2 ailesinden bir kriptografik hash fonksiyonudur. Herhangi bir uzunlukta bir girdi alır — tek bir karakter, bir parola veya tüm bir dosya — ve sabit 256 bitlik bir çıktı üretir; bu çıktı geleneksel olarak 64 onaltılık karakterle yazılır.
SHA-256'ın onu pratikte kullanışlı kılan üç özelliği vardır. Deterministiktir: aynı girdi her zaman aynı hash'i üretir. Tek yönlüdür (öngörüntüye dayanıklıdır): yalnızca hash değerinden özgün girdiyi geri elde etmek hesaplama açısından uygulanamazdır. Ve çakışmaya dayanıklıdır: aynı hash'e sahip iki farklı girdi bulmak mevcut teknolojiyle pratikte imkânsızdır.
Bu özellikler, SHA-256 ile gerçek dünyada nerede karşılaşacağınızı açıklar. İndirme sayfalarında ve paket yöneticilerinde dosya bütünlüğünü doğrular, Bitcoin'in işaret ispatı (proof-of-work) madenciliğini ve işlem adreslerini güvence altına alır, TLS/SSL sertifikalarını korur ve parolaların tuzlanmış (salted) hash şemalarının temelini oluşturur (parolalar için ise artık bcrypt veya Argon2 gibi özel, bilinçli olarak yavaş bir algoritma tercih edilmektedir). Bir web sitesi bir dosyanın SHA-256 sağlama değerini yayımladığında, indirdiğiniz kopyayı hash'leyip karşılaştırabilirsiniz: özdeş özetler, dosyanın bozulmadığını veya değiştirilmediğini gösterir.
Yararlı bir zihinsel model: hash, verinin parmak izidir. İki özdeş dosya her zaman aynı parmak izini taşır, ancak parmak izi dosyanın kendisi hakkında hiçbir şey ortaya koymaz ve iki farklı dosyanın aynı parmak izini taşıdığı bilinmemektedir.
Sınırlamalar ve Pratik İpuçları
- Girdi metindir, dosya değildir. Bu hesaplayıcı yazdığınız metni hash'ler. İndirilen bir dosyayı doğrulamak için yerel bir araç kullanın (Linux'ta
sha256sum, Windows'tacertutil -hashfile file SHA256veya macOS'tashasum -a 256) ve sonucu yayımlanan sağlama değeriyle karşılaştırın. - Boşluk karakterleri önemlidir. Sonda kalan bir boşluk, yeni satır veya farklı bir satır sonu tamamen farklı bir hash üretir. Metin yapıştırdıysanız ve sonuç beklenen değerle uyuşmuyorsa, en yaygın neden görünmez boşluk karakterleridir.
- Hash'leme şifreleme değildir. Bir SHA-256 hash değerini özgün metne geri "şifre çözemezsiniz". Geri döndürülebilir bir kodlama gerekiyorsa, bunun yerine Base64 Kodlayıcı veya Base64 Çözücü kullanın.
- Parolalar için ideal değildir. Düz SHA-256 hızlıdır ve bu, parola saklamada kullanıldığında kaba kuvvet ve gökkuşağı tablosu saldırılarına karşı savunmasız hale getirir. Bu amaçla tuzlanmış, bilinçli olarak yavaş algoritmalar (bcrypt, scrypt, Argon2) kullanın.
- Özetin büyük/küçük harfi. Bu araç küçük harfli onaltılık çıktı üretir. Büyük harfli özetler eşdeğerdir —
Aveaaynı değeri temsil eder. Çoğu karşılaştırma aracı her ikisini de kabul eder, ancak bazıları büyük/küçük harfe duyarlıdır. - Hash algoritması seçimi. SHA-256 şu anda güvenli ve kırılmamıştır. Eski algoritmalar öyle değildir: eski sistemlerle uyumluluk için hâlâ MD5 hash ile karşılaşabilirsiniz, ancak bu algoritma kriptografik olarak kırılmıştır ve asla güvenlik amaçlı kullanılmamalıdır.
- Uzun girdiler. SHA-256, en fazla \(2^{64}-1\) bitlik (yaklaşık 2 eksabayt) mesajlar için tanımlanmıştır; bu, herhangi bir pratik metin girdisinin çok ötesindedir. Girdinizin uzunluğu çıktının boyutunu değiştirmez — her zaman tam olarak 64 onaltılık karakterdir.
Bu Hesaplayıcının Yaygın Kullanımları
- Kısa dizgileri veya yapılandırma parçacıklarını karşılaştırmak için sağlama değeri üretmek.
- Metnin tam olarak girildiğini doğrulamak (ör. API anahtarları, lisans dizgileri, sınav cevapları).
- Bir metin parçası için hızlı ve benzersiz bir tanımlayıcı veya parmak izi oluşturmak.
- Eğitimlerde, CTF yarışmalarında ve programlama alıştırmalarında görülen hash değerlerini yeniden üretmek.
Kodlanmış veya dönüştürülmüş metinlerle çalışıyorsanız, hash'lemeden önce girdinizi denetlemek için Onaltılık Dönüştürücü veya Karakter Sayacı da işinize yarayabilir.
Sıkça Sorulan Sorular
SHA-256'yı elle veya kodla nasıl hesaplarım?
Elle hash'leme neredeyse hiç yapılmaz — algoritma her 512 bitlik blok için 64 tur bit düzeyinde döndürme ve modüler toplama içerir. Kodda yerleşik kütüphaneleri kullanın: Python'da hashlib.sha256(), Node.js'te crypto.createHash('sha256'), PHP'de hash('sha256', $data) veya Linux terminalinde sha256sum. Bu hesaplayıcı, terminal erişiminiz olmadığında veya hızlı bir görsel denetim istediğinizde kullanışlıdır.
İki farklı metin aynı SHA-256 hash değerine sahip olabilir mi?
Teoride evet — sonsuz sayıda girdiyi 2256 çıktılık sonlu bir kümeye eşleyen her fonksiyonun çakışmaları olmak zorundadır. Pratikte ise bugüne kadar hiçbir çakışma bulunamamıştır ve kaba kuvvetle bir tane bulmak, mevcut donanımla evrenin yaşından daha uzun sürerdi. SHA-256'nın dosya doğrulama, sertifikalar ve Bitcoin için hâlâ güvenilir olmasının nedeni budur.
SHA-256 geri döndürülebilir mi? Hash değerini metne geri çözebilir miyim?
Hayır. SHA-256 tek yönlü bir fonksiyondur: çıktı bilgi atar, bu yüzden her özete çok sayıda girdi karşılık gelir ve bir şifre çözme işlemi yoktur. "Tersine çevirme" siteleri yalnızca girdileri tahmin edip hash'in uyuşup uyuşmadığını kontrol yoluyla çalışır. Geri döndürülebilir bir dönüşüm gerekiyorsa Base64 gibi kodlama araçlarını kullanın — ancak kodlamayı asla güvenlik olarak görmeyin.
Hash değerim beklenen değerle neden uyuşmuyor?
En yaygın nedenler girdideki görünmez farklardır: sonda yeni satır, sonda boşluk, farklı satır sonları (CRLF ile LF) veya görünüşte aynı ama farklı Unicode karakterler (kıvrık ve düz tırnak işaretleri). Ayrıca karakter kodlamasını — bu araç UTF-8 baytlarını hash'ler — ve beklenen özetin büyük harfli olup olmadığını kontrol edin; büyük harf eşdeğerdir ancak büyük/küçük harfe duyarlı bir karşılaştırmada başarısız olabilir.
SHA-256, SHA-1 ve MD5 arasındaki fark nedir?
Üçü de hash fonksiyonudur, ancak çıktı boyutları ve güvenlik düzeyleri farklıdır. MD5 (128 bit) ve SHA-1 (160 bit) kırılmış kabul edilir — ikisi için de pratik çakışma saldırıları mevcuttur, bu yüzden güvenlik için kullanılmamalıdırlar. SHA-256 (256 bit) için bilinen pratik saldırı yoktur ve sertifikalar, imzalar ve sağlama değerleri için geçerli standarttır. Yeni her şey için SHA-256'yı tercih edin.
SHA-256, SHA-512'den nasıl farklıdır?
SHA-512, SHA-2 ailesinin kardeş algoritmasıdır ve 64 bitlik iç kelimeler kullanarak 512 bitlik (128 onaltılık karakterlik) bir özet üretir. SHA-256 32 bitlik kelimeler ve 64 tur; SHA-512 ise 64 bitlik kelimeler ve 80 tur kullanır. İkisi de güvenlidir. 64 bitlik işlemcilerde SHA-512 uzun girdiler için aslında daha hızlı olabilir, ancak SHA-256 daha yaygın desteklenir ve çoğu protokolde varsayılan olarak kalır.
Parolaları güvenle hash'lemek için SHA-256 kullanabilir miyim?
Yalnızca düz SHA-256 ile hayır. Hızlı olacak şekilde tasarlanmıştır ve bu, saldırganların saniyede milyarlarca tahmin denemesine olanak tanır. Parola saklama için, kullanıcı başına benzersiz bir tuz (salt) ile birlikte özel olarak tasarlanmış yavaş bir algoritma kullanın — bcrypt, scrypt veya Argon2. Düz SHA-256, hızın bir zayıflık değil bir üstünlük olduğu sağlama değeri ve bütünlük denetimleri için uygundur.