Glossary
SHA-256
Modern karma işlevi standardı
By Buğra SözeriPublished Updated
SHA-256, ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından 2001 yılında SHA-2 ailesinin bir parçası olarak yayımlanan (FIPS PUB 180-4) bir kriptografik karma işlevidir. Herhangi bir uzunlukta girdi alır ve 256 bitlik (32 bayt, 64 hex karakter) sabit uzunluklu çıktı üretir.
İşlev deterministiktir (aynı girdi her zaman aynı çıktıyı üretir), tek yönlüdür (çıktıdan girdiyi türetmek hesaplama açısından olanaksızdır) ve çakışma dirençlidir (aynı çıktıyı üreten iki farklı girdi bulmak hesaplama açısından olanaksızdır). 2026 itibarıyla SHA-256 çakışma direncine yönelik pratik bir saldırı gösterilmemiştir.
SHA-256’nın kullanıldığı yerler: TLS sertifika imzaları, JWT imzaları (HS256, RS256, ES256 — 256, SHA-256’yı ifade eder), Bitcoin blok karmaları (çift uygulamalı), HMAC-SHA256 ileti kimlik doğrulaması, Git’in yakında gelecek SHA-256 nesne biçimi ve temelde tüm modern bütünlük doğrulama yığınları.
SHA-256 karmalarını karma oluşturucumuz aracılığıyla hesaplayın; bu araç, arka planda tarayıcının Web Crypto API’sini (crypto.subtle.digest) kullanır.
SHA-256’nın yapılmadığı şey — ve parola hatası: SHA-256, tasarım gereği hızlıdır. Modern bir GPU saniyede milyarlarca SHA-256 karması hesaplar; bu, dosya bütünlüğünü doğrulamak için mükemmeldir ancak parola karmalamak için felakettir. Sade SHA-256 parola karmalarından oluşan bir veritabanını ele geçiren saldırgan, kaba kuvvetle saatler içinde çoğu zayıf parolayı kurtarabilir. Parola karmalamak, kullanıcı başına bir tuz ile kasıtlı olarak yavaş bir işlev gerektirir; bcrypt, scrypt, Argon2 gibi her karmanın ~100 ns yerine ~100 ms sürecek şekilde maliyet faktörünü ayarlayan işlevler. Kullanıcı parolalarını düz SHA256(parola) olarak saklamak, ihlal duyurularında en tutarlı biçimde istismar edilen hatalardan biridir. Başka hiçbir şey hatırlamasanız da şunu hatırlayın: SHA-256 bütünlük için, Argon2id parolalar için.
Çift SHA-256, uzunluk uzatma ve HMAC düzeltmesi: SHA-256, SHA-1 ve MD5 tarafından kullanılan Merkle-Damgård yapısını devralır; bu da onu uzunluk uzatma saldırılarına açık kılar — H(gizli || mesaj) verildiğinde saldırgan, gizliyi bilmeden H(gizli || mesaj || dolgu || ekstra) hesaplayabilir. 2010’ların başından kalma naif “gövdeyi SHA256(anahtar + gövde) ile imzala” API’larının tamamının HMAC-SHA256 ile değiştirilmesinin nedeni budur; HMAC, yapıyı iki anahtarlı karma ile sarar ve uzunluk uzatmaya açık değildir. Bitcoin’in “çift SHA-256”sü (SHA256(SHA256(x))), aynı saldırı ailesine karşı farklı bir önlemdir ve HMAC ile ilgisi yoktur. İlgili konular: JWS, imza, SHA-256 - MD5 karşılaştırması. Kaynak: NIST FIPS 180-4 — Güvenli Karma Standardı.
Çalışma örneği
Boş dizenin SHA-256 karması, iyi bilinen sabit değer olan e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855’dir. Tek bayt "a" karmasi ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb’dir. Bir bit değiştirin — örneğin "b"’ye — ve karma 3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d olur; önceki çıktıyla belirgin bir ilişkisi yoktur. Bu, devrede olan “çığ” özelliğidir: her girdi biti çıktı bitlerinin yaklaşık yarısını etkiler. 1 GB’lık indirmeyi doğrulamak için SHA-256’sını (satıcının yayımladığı 64 karakterlik hex dizesi) yerel olarak hesapladığınızla karşılaştırırsınız. Eşleşirlerse, dosya kesinlikle bit bit özdeştir (çakışma olasılığı 2⁻¹²⁸ olup gözlemlenebilir evrenden rastgele aynı atomu seçmekten daha azdır).
Ne zaman ve neden önemlidir
SHA-256, modern internette güvendiğiniz neredeyse her şeyin bütünlük ilkesidir. TLS sertifika zincirleri, SHA-256 özetleri üzerinde RSA/ECDSA ile imzalanır; JWT’ler varsayılan olarak HMAC-SHA256 kullanır; Docker görüntü özetleri, Git’in yeni nesil nesne kimliklerinin tamamı, Apple’ın kod imzalaması ve Bitcoin’in tüm blok zinciri SHA-256 üzerinden karma yapılır. Bilinmesi gereken üç başarısızlık modu: SHA-1 veya MD5’i yerine koymak (her ikisi de çakışma direnci açısından kırılmıştır — SHA-1 çakışmaları 2017’de gösterildi), Argon2id yerine parolalar için doğrudan SHA-256 kullanmak (yukarıya bakın) ve 128 bitin altına kısaltılmış SHA-256’ya çakışma dirençli güvenmek (96 bitlik önek üzerindeki doğum günü sınırı yalnızca 2⁴⁸’dir — kararlı bir saldırganın erişebileceği bir değer). Kaynak: NIST CSRC — Karma İşlevleri.
Hesaplayıcıyı deneyin
Tarayıcınızda herhangi bir metin girdisi için SHA-256 (veya SHA-1, MD5) özeti yerel olarak hesaplayın.
Karma aracını aç →Frequently asked questions
- SHA-256 nedir?
- SHA-256, herhangi bir girdiden sabit 256 bitlik (32 baytlık) bir özet üreten SHA-2 ailesinden bir kriptografik karma işlevidir. Deterministik, tek yönlü (ön görüntü dirençli) ve çakışma dirençlidir: girdideki tek bir bit değişikliği çıktıyı tamamen değiştirir.
- SHA-256 pratikte nasıl kullanılır?
- SHA-256, dosya bütünlüğünü doğrulamak (paket yöneticileri indirme karmalarını karşılaştırır), TLS sertifika parmak izlerinde, Bitcoin madenciliğinde iş kanıtı işlevi olarak ve API istek imzalamak için HMAC içinde kullanılır. Git, commit'leri ve nesneleri tanımlamak için SHA-256 varyantı kullanır.
- SHA-256 ile MD5 arasındaki fark nedir?
- MD5, 128 bitlik bir özet üretir ve kriptografik olarak kırılmıştır; çakışmalar ticari donanımda saniyeler içinde üretilebilir. SHA-256, 256 bitlik bir özet üretir, bilinen pratik çakışma saldırısı yoktur ve bütünlük doğrulama ile dijital imzalar için güncel önerilen standarttır.
Related
Published May 14, 2026 · Last reviewed May 31, 2026