Şifreleme Tanımlayıcısı

Bir veritabanı dökümünü incelerken $2y$10$... veya 5f4dcc3b5aa765d61d8327deb882cf99 gibi diziler görürsünüz ve kırmaya ya da tersine çevirmeye başlamadan önce neye baktığınızı bilmeniz gerekir. Bu tanımlayıcı, bir şifreli metin örneğinin arkasındaki en olası algoritmayı veya kodlamayı tahmin etmek için uzunluk, karakter seti, yapı ve ön eke dayalı sezgisel yöntemler (heuristikler) uygular.

Şifreli metni nasıl tanımlarız?

  1. 1

    Örneği yapıştırın

    Tek bir hash, şifreli metin bloğu, token veya kodlanmış karakter dizisi.

  2. 2

    Eşleşen formatları görün

    Deseni örneğinizle eşleşen tüm formatlar sonuçta listelenir.

  3. 3

    Çapraz kontrol yapın

    Birden fazla format eşleşiyorsa hangisinin doğru olduğunu doğrulamak için bir hash kırıcı veya kod çözücü kullanın.

  4. 4

    Belirsizliği göz önünde bulundurun

    Yalnızca bir örnekten yapılan tanımlama nadiren kesindir; hiçbir şey eşleşmezse araç bunu belirtir.

Tanımlayıcının kullandığı imza desenleri

Uzunluğa dayalı (onaltılık (hex) kodlanmış hash’ler için):

Uzunluk (hex karakter) Olarak tanımlanır
32 MD5
40 SHA-1
64 SHA-256
128 SHA-512

56 hex karakterli SHA-224 veya 96 hex karakterli SHA-384 gibi diğer uzunluklar hash olarak tanınmaz (56 veya 96 karakterli hex dizileri bunun yerine Base64 olarak sınıflandırılır).

Ön eke dayalı (yalnızca bcrypt ön ekleri tanınır):

  • $2a$ $2b$ $2y$ bcrypt

Diğer crypt tarzı ön ekler ($1$, $5$, $6$, $argon2i$, $argon2id$, $pbkdf2$) tanınmaz.

Kodlamaya dayalı:

  • Tüm karakterler [A-Za-z0-9+/=] içindeyse ve uzunluk 4’ün katıysa: büyük olasılıkla Base64.
  • . ile ayrılmış ve her biri [A-Za-z0-9_-] karakterlerinden oluşan üç bölüm: JWT.

PEM sarmalayıcılar, OpenSSH ssh-rsa/ssh-ed25519 blokları ve - veya _ içeren Base64url dizileri algılanmaz.

Tanımlamanın söyleyemeyecekleri

  • %100 kesinlikle tam algoritma. 64 hex karakterlik bir dizi SHA-256 olarak raporlanır, ancak SHA3-256 veya BLAKE2s de olabilir; yalnızca şifreli metne bakılarak bunlar ayırt edilemez. NTLM hash’leri (onlar da 32 hex karakterdir) MD5 ile aynı görünür.
  • Anahtar gücü. Bir bcrypt hash’i ön ekinde maliyet faktörünü gösterir ($2y$10$ = maliyet 10), ancak parolanın kendi gücünü göstermez.
  • Tuzlanmış olup olmadığı. Modern parola hash’leri (bcrypt, Argon2) her zaman tuzlanmıştır; eskiler (ham MD5/SHA) tuzlanmış olabilir de olmayabilir de.
  • Düz metin. Tanımlama hash’i geri çevirmez; kırma ayrı bir süreçtir ve yalnızca kendi verileriniz üzerinde yasaldır.

Tanımlayıcı yanıldığında

  • Özel ön ekli token’lar. Uygulamalar bazen bir hash’i kendi ön ekiyle sarar; önce bu sarmalayıcıyı kaldırın.
  • Çift kodlama. İkili bir hash’in hex gösterimi tekrar Base64 ile sarıldığında yanlış tanımlanır. Bir kez kod çözüp yeniden çalıştırmayı deneyin.
  • Alışılmadık uzunluklar. Kırpılmış hash’ler (örneğin SHA-256’nın ilk 16 karakterinin kimlik olarak kullanılması), karakter ve uzunluk kuralları çakıştığı için “Base64” olarak gösterilir.
  • Çerçeveli veya sarmalanmış formatlar. PEM blokları, OpenSSH anahtarları ve Django’nun pbkdf2_sha256$... formatı tanınmaz; sarmalayıcıyı veya ön eki kaldırıp yeniden deneyin ya da özel bir ayrıştırıcı kullanın.

Kullanım örnekleri

  • Güvenlik denetimleri: bir kripto geçişi öncesinde kod tabanındaki hash türlerini kataloglamak.
  • CTF yarışmaları: bilinmeyen bir veri bloğuna hızlı ilk bakış.
  • Olay müdahalesi: sızan kimlik bilgilerinin formatını belirlemek.
  • Framework hata ayıklama: bir kütüphanenin hangi kodlamayı ürettiğini bulmak.

Etik hatırlatması

Bir hash formatını belirlemek pasif bir araştırmadır. Başkasının hash’ini izinsiz kırmak çoğu yargı bölgesinde bilgisayarların kötüye kullanımıyla ilgili yasaları ihlal eder. Yalnızca size ait olan veya analiz etme yetkiniz bulunan hash’ler üzerinde çalışın.

Sık Sorulan Sorular

Kısmen: MD5, 32 hex karakterdir; SHA-1 ise 40. Her ikisi aynı uzunluk aralığındaysa yalnızca hash değerine bakarak ayırt edemezsiniz. Genellikle bağlam (veritabanı sütun adı, framework varsayılan ayarları veya sızdırılmış şema) sonucu belirler.

Hayır. Yalnızca tanımlama yapar. Bir hash’i tersine çevirmek veya şifreli metni çözmek için ayrı araçlar (ve anahtar ya da kırma için gerekli hesaplama kaynakları) gerekir ve bu işlem yalnızca kendi materyaliniz üzerinde yasaldır.

Argon2id (veya yüksek maliyet faktörlü bcrypt) güncel öneridir. PBKDF2-SHA256 ve scrypt hâlâ kabul edilebilir. Düz MD5, SHA-1 veya tuzlanmamış SHA-256 ise parola saklamak için güvenli değildir.

Hayır. Yapıştırdığınız değer format kontrolü için sunucumuza gönderilir, ancak hiçbir veritabanında saklanmaz ve sayfa bağlantısına eklenmez.

İlgili Araçlar

Araç diğer dillerde mevcuttur