Hash tanımlama, belirli bir özet değerinin hangi kriptografik hash algoritması tarafından üretildiğini belirleme sürecidir. MD5, SHA-1 ve SHA-256 gibi kriptografik hash fonksiyonlarının her biri sabit uzunluklu çıktılar üretir; bu çıktı uzunluğu, bilinmeyen bir hash'i tanımlamak için kullanılan birincil göstergedir. Bir veritabanı dökümünde, yapılandırma dosyasında ya da API yanıtında onaltılık bir dizeyle karşılaştığınızda, hash tanımlayıcı araç hangi algoritmanın onu büyük olasılıkla oluşturduğunu söyler.
Her hash algoritması, rastgele girdi verilerini özet adı verilen sabit boyutlu bir çıktıya eşler. MD5 her zaman 128 bit (32 hex karakter), SHA-1 her zaman 160 bit (40 hex karakter) ve SHA-256 her zaman 256 bit (64 hex karakter) üretir. Bu deterministik çıktı uzunluğu, orijinal girdiye veya hash koduna erişim olmaksızın algoritmik tanımlamayı mümkün kılan unsurdur.
Yalnızca uzunluğa dayalı tanımlama her zaman kesin değildir. Birden fazla algoritma aynı çıktı boyutunu paylaşabilir; örneğin SHA-256 ve SHA3-256'nın her ikisi de 64 karakterlik hex özetleri üretir. Bu tür durumlarda hash tanımlayıcı, yaygınlığa göre sıralanmış aday algoritmaların bir listesini sunar. Kaynak sistem, kodlama biçimi (hex'e karşı Base64) ve bcrypt için '$2b$' gibi algoritma öneklerinin varlığı gibi bağlamsal ipuçları olasılıkları daha da daraltır.
Neden Hash Tanımlayıcı Kullanmalısınız?
Bilinmeyen hash'ler güvenlik denetimleri, veritabanı geçişleri ve adli analiz sırasında düzenli olarak karşıma çıkar. Hash tanımlayıcı, tahmin yanılgısını ortadan kaldırır ve sizi saniyeler içinde doğru algoritmaya yönlendirir.
⚡
Anında Tespit
Bir hash yapıştırın ve aday algoritmaları hemen görün. Karakterleri manuel olarak saymaya ya da referans tablolarına başvurmaya gerek yok — araç, hex uzunluğunu tüm eşleşen algoritmalara otomatik olarak eşler.
🔒
Gizlilik Öncelikli Analiz
Tüm tanımlama işlemi JavaScript kullanılarak tamamen tarayıcınızda çalışır. Hash değeri hiçbir zaman cihazınızı terk etmez; bu durum parola hash'leri, kimlik doğrulama belirteçleri veya hassas adli deliller analiz edilirken büyük önem taşır.
📋
Kapsamlı Algoritma Desteği
MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 ve bunların SHA-3 karşılıklarını tespit eder. Referans tablosu, SHA-2 ve SHA-3 ailelerinin tamamını ve RIPEMD-160 ile BLAKE2 gibi yaygın alternatifleri kapsar.
🚫
Hesap veya Kurulum Gerekmez
Her modern tarayıcıda anında çalışır. Kayıt, API anahtarı veya kurulacak bir CLI aracı gerekmez. Yer imlerinize ekleyin ve bilinmeyen bir hash'le karşılaştığınızda — herhangi bir işletim sisteminde, herhangi bir cihazda — kullanın.
Hash Tanımlayıcı Kullanım Senaryoları
Güvenlik Denetimi
Sızma testleri sırasında, sızdırılan veritabanlarındaki parola hash algoritmalarını tanımlamak, kırma yaklaşımını belirler. MD5 ve SHA-1 hash'leri zayıf korumaya işaret eder ve düzeltme için önceliklendirilebilir.
Veritabanı Geçişi
Kullanıcı kayıtları sistemler arasında taşınırken, yeni kimlik doğrulama katmanını doğru yapılandırmak için saklanan parola hash algoritmasının bilinmesi gerekir. Algoritmayı yanlış tanımlamak tüm oturumların başarısız olmasına neden olur.
DevOps ve CI/CD
Derleme süreçleri genellikle artifact doğrulaması için sağlama toplamları içerir. Bir sağlama toplamının SHA-256 mi yoksa SHA-512 mi olduğunu belirlemek, dağıtım betiklerinizde doğru doğrulama komutunu kullanmanızı sağlar.
Dijital Adli Bilişim
Adli bilişim uzmanları, dosya bütünlüğü günlüklerinde, blockchain kayıtlarında ve delil meta verilerinde hash özetleriyle karşılaşır. Algoritmanın tanımlanması, delil gözetim zincirinin doğrulanması için bir ön koşuldur.
API Entegrasyonu
Üçüncü taraf API'ler bazen algoritmayı belgelemeden hash değerleri döndürür. Yanıttaki hash türünü tanımlamak, webhook imza doğrulamanızı veya sağlama toplamı doğrulamanızı doğru şekilde yapılandırmanızı sağlar.
Kriptografi Öğrenimi
Kriptografi kurslarında çalışan öğrenciler, farklı algoritmalar tarafından üretilen hash'leri yapıştırarak algoritma seçimi, çıktı uzunluğu ve güvenlik özellikleri arasındaki ilişkiyi anında görebilir.
Hash Algoritması Uzunluk Referansı
Aşağıdaki tablo, her yaygın hash algoritmasını bit, hex karakter ve ham bayt cinsinden çıktı boyutuna eşler. Bu, hash tanımlama araçlarının kullandığı birincil arama tablosudur. Birden fazla algoritma aynı hex uzunluğunu paylaştığında, aralarını ayırt etmek için ek bağlam gerekir.
Algoritma
Bit
Hex Karakter
Bayt
Notlar
MD5
128
32
16
Broken — collisions trivial since 2004
SHA-1
160
40
20
Deprecated — SHAttered attack (2017)
SHA-224
224
56
28
Truncated SHA-256; rarely used standalone
SHA-256
256
64
32
Current standard; TLS, Git, Bitcoin
SHA-384
384
96
48
Truncated SHA-512; CNSA Suite approved
SHA-512
512
128
64
Maximum SHA-2 output; large-data hashing
SHA3-256
256
64
32
Keccak-based; NIST alternative to SHA-2
SHA3-512
512
128
64
Keccak-based; highest SHA-3 strength
RIPEMD-160
160
40
20
Used in Bitcoin address derivation
BLAKE2s
256
64
32
Faster than SHA-256; 256-bit output
Hash Uzunluklarını Ayırt Etme
Bazı hex uzunlukları birden fazla algoritmayla eşleşir. En yaygın iki belirsizlik, 64 karakterlik hash'ler (SHA-256 ve SHA3-256) ile 40 karakterlik hash'lerdir (SHA-1 ve RIPEMD-160). Uzunluk tek başına yetersiz kaldığında bunları birbirinden ayırt etme yöntemi aşağıda açıklanmıştır.
64 hex karakter: SHA-256 ve SHA3-256
Her ikisi de 256 bit (64 karakter) özet üretir. SHA-256, pratikte ezici biçimde daha yaygındır — Git commit'leri, TLS sertifikaları, Bitcoin blokları ve çoğu API imzası SHA-256 kullanır. SHA3-256 genellikle yalnızca açıkça NIST SP 800-185 uyumluluğu veya Keccak tabanlı yapılar gerektiren sistemlerde bulunur. Doğrulamak için kaynak sistemin belgelerine başvurun.
40 hex karakter: SHA-1 ve RIPEMD-160
SHA-1, çok daha yaygın olan 160 bit hash'tir — Git'te tarihsel olarak (SHA-256 geçişinden önce), TLS'de ve kod imzalamada kullanılmıştır. RIPEMD-160 öncelikle Bitcoin adres üretiminde görülür (HASH160 = SHA-256'nın ardından RIPEMD-160). Hash bir kripto para birimi bağlamından geliyorsa RIPEMD-160'ı değerlendirin; aksi takdirde SHA-1 daha olası adaydır.
Kod Örnekleri
Aşağıda, dört farklı dilde hex uzunluğuna göre hash tanımlamanın çalışan uygulamaları yer almaktadır. Her fonksiyon hex kodlamasını doğrular, karakter sayısını arar ve eşleşen tüm algoritmaları döndürür.
package main
import (
"fmt"
"regexp"
)
var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")
var hashLengths = map[int][]string{
32: {"MD5"},
40: {"SHA-1", "RIPEMD-160"},
56: {"SHA-224", "SHA3-224"},
64: {"SHA-256", "SHA3-256", "BLAKE2s"},
96: {"SHA-384", "SHA3-384"},
128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}
func identifyHash(hex string) []string {
if !hexPattern.MatchString(hex) {
return []string{"Not a hex-encoded hash"}
}
if algos, ok := hashLengths[len(hex)]; ok {
return algos
}
return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}
func main() {
fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
// → [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"
if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
echo "Not a hex-encoded hash"
exit 1
fi
len=${#hash}
case $len in
32) echo "MD5 (128-bit)" ;;
40) echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
56) echo "SHA-224 or SHA3-224 (224-bit)" ;;
64) echo "SHA-256 or SHA3-256 (256-bit)" ;;
96) echo "SHA-384 or SHA3-384 (384-bit)" ;;
128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
*) echo "Unknown hash length: $len chars" ;;
esac
# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# → MD5 (128-bit)
Sıkça Sorulan Sorular
Hash tanımlama nasıl çalışır?
Hash tanımlama, öncelikle hex olarak kodlanmış özetin uzunluğuna dayanır. Her hash algoritması sabit sayıda çıktı biti üretir: MD5 128 bit (32 hex karakter), SHA-1 160 bit (40 hex karakter), SHA-256 256 bit (64 hex karakter) üretir ve bu böyle devam eder. Tanımlayıcı, dize uzunluğunu ölçer, yalnızca onaltılık karakter içerdiğini doğrular ve bilinen algoritma çıktı boyutlarıyla eşleştirir.
Hash tanımlayıcı kesinlikle doğru algoritmayı belirleyebilir mi?
Her zaman değil. Birden fazla algoritma aynı çıktı uzunluğunu üretebilir. SHA-256 ve SHA3-256'nın her ikisi de 64 hex karakter çıktısı verir. SHA-1 ve RIPEMD-160'ın her ikisi de 40 hex karakter çıktısı verir. Bu durumlarda araç tüm adayları döndürür. Tek bir algoritmaya daraltmak için kaynak sistem, belgeler veya algoritma önekleri gibi bağlam bilgisine ihtiyacınız vardır.
Hash'im hex yerine Base64 ile kodlanmışsa ne yapmalıyım?
Base64 ile kodlanmış hash'ler, hex karşılıklarından farklı bir karakter kümesi (A-Z, a-z, 0-9, +, /) ve farklı uzunluklar kullanır. 256 bit hash, 44 Base64 karakter ancak 64 hex karakterdir. Önce Base64 dizesini ham baytlara dönüştürün, ardından bayt uzunluğunu kontrol edin: 16 bayt = MD5, 20 bayt = SHA-1, 32 bayt = SHA-256, 48 bayt = SHA-384, 64 bayt = SHA-512.
Parola hash'lerini çevrimiçi bir tanımlayıcıya yapıştırmak güvenli midir?
Bu araç tamamen tarayıcınızda çalışır — hiçbir veri herhangi bir sunucuya iletilmez. Hash hiçbir zaman cihazınızı terk etmez. Bununla birlikte, resmi bir denetim sırasında maksimum operasyonel güvenlik için tarayıcının geliştirici araçlarındaki ağ sekmesini inceleyerek ya da sayfa yüklendikten sonra aracı çevrimdışı kullanarak bunu doğrulayabilirsiniz.
MD5 kriptografik olarak kırılmışsa neden hâlâ kullanılıyor?
MD5, çakışma direnci açısından kırılmıştır — bir saldırgan aynı hash'i üreten iki farklı girdi oluşturabilir. Ancak MD5, güvenlik dışı bağlamlarda hâlâ kullanılmaktadır: indirme doğrulaması için dosya sağlama toplamları, önbellek anahtarları, tekilleştirme ve HTTP'deki ETag'ler. Bu amaçlar için kazara çakışmalar astronomik düzeyde düşük olasılıklıdır ve kasıtlı saldırılar endişe kaynağı değildir. MD5, parola hashleme, dijital imzalar veya sertifika doğrulaması için kesinlikle kullanılmamalıdır.
bcrypt, scrypt veya Argon2 hash'lerini nasıl tanımlayabilirim?
bcrypt, scrypt ve Argon2 gibi parola hashleme fonksiyonları, ham hex çıktısı yerine belirgin dize önekleri kullanır. Bcrypt hash'leri bir maliyet faktörünün ardından '$2a$', '$2b$' veya '$2y$' ile başlar. Argon2 hash'leri '$argon2id$' veya '$argon2i$' ile başlar. Scrypt hash'leri genellikle '$scrypt$' ile başlar. Bunlar ham kriptografik özetler olmadığından uzunluğa dayalı tanımlama geçerli değildir — önekin kendisi algoritmayı tanımlar.
SHA-2 ile SHA-3 arasındaki fark nedir?
SHA-2 (SHA-256, SHA-384 ve SHA-512'yi içerir), NSA tarafından tasarlanan ve FIPS 180-4'te standartlaştırılan Merkle-Damgard yapısını temel alır. SHA-3 (SHA3-256, SHA3-384, SHA3-512), kamuya açık bir NIST yarışmasıyla seçilen ve FIPS 202'de standartlaştırılan Keccak sünger yapısını temel alır. Eşleşen güvenlik düzeylerinde aynı çıktı uzunluklarını üretirler ancak temelde farklı iç yapılar kullanırlar. SHA-3, SHA-2'de yapısal zayıflıklar bulunması ihtimaline karşı bir yedek olarak tasarlanmıştır; ancak bu tür zayıflıklar henüz gösterilmemiştir.