Hash oluşturucu ne yapar?
Kriptografik özet (hash) fonksiyonu, herhangi uzunluktaki veriden sabit uzunlukta bir parmak izi üretir. Girdide tek bir bayt değişirse çıktı tamamen değişir. Araç aynı girdi için seçtiğiniz bütün algoritmaları tek seferde hesaplar ve sonuçları yan yana gösterir.
Tipik kullanım alanları: indirilen bir kurulum dosyasının yayıncının verdiği SHA-256 değeriyle aynı olduğunu doğrulamak, bir API’nin istediği HMAC imzasını test etmek, iki dosyanın aynı olup olmadığını hızlıca anlamak veya Subresource Integrity (sha384-…) değerini kontrol etmek.
Nasıl kullanılır?
- Metin modunda yazdıkça sonuçlar 150 ms gecikmeyle güncellenir. Metin UTF-8 olarak baytlara çevrilir.
- Dosya modunda bir dosya seçin; araç dosyayı 4 MiB’lık parçalar hâlinde okur ve ilerlemeyi yüzde olarak gösterir. İşlemi iptal edebilirsiniz.
- Hesaplanacak algoritmaları işaretleyin. En az biri seçili olmalıdır.
- HMAC kutusunu işaretlerseniz anahtarı düz metin (UTF-8) veya hex olarak girin; her algoritma HMAC-… olarak hesaplanır.
- Beklenen hash alanına yayıncının değerini yapıştırın. Büyük/küçük harf fark etmez;
sha256sumçıktısı gibi “hash dosya-adı” satırları vesha384-önekli Base64 değerleri de kabul edilir. - Çıktı biçimini seçip sonuçları kopyalayın.
Algoritmalar ve güvenlik düzeyi
SHA ailesi tarayıcının yerleşik Web Crypto arayüzüyle hesaplanır. Web Crypto MD5 sunmadığı için MD5, RFC 1321’e göre bu sayfada yazılmış bir uygulamayla hesaplanır ve RFC’deki test değerleriyle sınanmıştır.
| Algoritma | Çıktı | Durum |
|---|---|---|
| MD5 | 128 bit, 32 hex | Çakışma üretilebiliyor; güvenlik için kullanmayın |
| SHA-1 | 160 bit, 40 hex | Pratik çakışma gösterildi; yalnız eski sistemlerle uyumluluk için |
| SHA-256 | 256 bit, 64 hex | Dosya doğrulama ve imzalar için yaygın tercih |
| SHA-384 | 384 bit, 96 hex | SRI ve TLS tarafında sık görülür |
| SHA-512 | 512 bit, 128 hex | 64 bit işlemcilerde SHA-256’dan hızlı olabilir |
MD5 ve SHA-1 satırları sonuç tablosunda ayrıca işaretlenir. Bunlar bozuk dosyayı yakalamak için hâlâ işe yarar, ancak bir saldırganın bilerek hazırladığı dosyaya karşı koruma sağlamaz. Parola saklamak için hiçbir düz hash uygun değildir; bunun için Argon2, bcrypt veya scrypt gibi yavaş ve tuzlu yöntemler gerekir.
HMAC ve beklenen hash karşılaştırması
HMAC (RFC 2104) mesajı gizli bir anahtarla birlikte özetler; anahtarı bilmeyen biri aynı değeri üretemez. Webhook imzaları ve API istek doğrulaması genellikle HMAC-SHA256 kullanır. HMAC-SHA ailesi Web Crypto ile, HMAC-MD5 ise yerel MD5 uygulamasıyla hesaplanır. Web Crypto boş anahtarı kabul etmediği için anahtar alanı zorunludur.
Karşılaştırmada beklenen değer önce bayta çevrilir, sonra uzunluğu eşleşen her sonuçla bütün baytlar gezilerek karşılaştırılır; ilk farklı baytta durulmaz. Uzunluk hangi algoritmayı gösteriyorsa (örneğin 64 hex karakter SHA-256) ama o algoritma seçili değilse araç bunu ayrıca söyler.
Satır sonu ve kodlama farkları
Aynı görünen iki metin farklı baytlardan oluşabilir. Windows satır sonu CRLF (\r\n) iki bayt, Unix satır sonu LF (\n) bir bayttır; bu yüzden hash değişir. Tarayıcılar metin kutusundaki satır sonlarını LF’ye çevirdiği için araç LF ile hesaplar; Windows’ta oluşturulmuş bir dosyanın metin hâlini doğrularken satır sonu seçeneğini CRLF yapın. Kesin sonuç için dosya modunu kullanın; dosya baytları hiç değiştirilmez.
Türkçe karakterler UTF-8’de iki bayt tutar: ü karakteri c3 bc olarak kodlanır. Metnin sonundaki tek bir satır sonu da sonucu değiştirir; komut satırında echo yerine printf '%s' ya da echo -n kullanılmasının nedeni budur.
Örnek ve yorum
Örnek düğmesi FIPS 180-4 belgesindeki abc metnini ve beklenen SHA-256 değerini yükler. Sonuç ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad olur ve SHA-256 satırı “eşleşti” olarak işaretlenir. Aynı girdinin MD5 değeri RFC 1321’deki 900150983cd24fb0d6963f7d28e17f72 ile aynıdır.
Merhaba dünya metni LF ile bittiğinde SHA-256 300c120e…1b0b9fd5, CRLF ile bittiğinde cd876c3b…51165519 olur. Aynı metin, iki farklı özet: bir doğrulama tutmuyorsa önce satır sonlarını ve sondaki boşlukları kontrol edin.
Sınırlar ve gizlilik
Dosya sınırı 200 MiB, metin sınırı bir milyon karakterdir. Web Crypto akış hâlinde özet çıkaramadığı için bir SHA algoritması seçildiğinde dosyanın tamamı geçici olarak belleğe alınır; yalnız MD5 seçiliyse dosya parça parça işlenir. Düşük bellekli cihazlarda büyük dosyalar hata verebilir.
Hiçbir veri ağa gönderilmez. Paylaşım bağlantısına yalnız işaretlerseniz metin, seçenekler ve beklenen hash eklenir; dosya ve HMAC anahtarı hiçbir durumda eklenmez. Bir hash’in eşleşmesi dosyanın güvenli olduğunu değil, beklenen değerle aynı olduğunu gösterir; beklenen değeri güvenilir bir kaynaktan almanız gerekir. Rastgele anahtar gerekiyorsa WordPress salt oluşturucu ya da UUID oluşturucu daha uygundur.
Sık sorulan sorular
Hash değerinden asıl metni geri elde edebilir miyim?
Hayır. Hash tek yönlüdür. Kısa ve tahmin edilebilir girdiler sözlük saldırısıyla bulunabilir; bu yüzden gizli verinin hash’ini paylaşmak onu gizlemek anlamına gelmez.
Komut satırındaki sonuçla neden farklı çıkıyor?
En sık neden sondaki satır sonudur: echo metne \n ekler. İkinci neden CRLF satır sonları, üçüncüsü farklı karakter kodlamasıdır. Dosya modunu kullanırsanız baytlar birebir özetlenir.
MD5 hâlâ kullanılabilir mi?
Kazara bozulmayı yakalamak veya eski bir sistemin istediği değeri üretmek için evet. Kötü niyetli değişikliğe karşı doğrulama, imza veya parola saklama için hayır; SHA-256 veya üstünü tercih edin.
Dosyam sunucuya yükleniyor mu?
Hayır. Dosya tarayıcının File API’siyle okunur ve özet cihazınızda hesaplanır. Ağ sekmesinde bu işlem için bir istek görmezsiniz.
Base64 çıktısı ne zaman gerekir?
Subresource Integrity (integrity="sha384-…"), bazı API imzaları ve HTTP Digest başlıkları özeti Base64 olarak ister. Aynı baytların hex ve Base64 yazımı farklı görünür ama değer aynıdır.