Özet değerlerinin belirli karakter uzunluğu vardır. En önemli özet değerlerinin karakter uzunlukları aşağıdaki gibidir:
- MD5: 32 karakter (Hex)
- SHA-1: 40 karakter (Hex)
- SHA-256: 64 karakter (Hex)
- SHA-512: 128 karakter (Hex)
Kali üzerinde hash-identifier betiği hazır olarak gelmektedir. Bunun yanında betik Google Code üzerinden de indirilebilir.
https://code.google.com/archive/p/hash-identifier/downloads
Betiğin örnek bir çıktısı aşağıdaki gibidir.
Özetleme algoritmaları belli uzunlukta belli karakter kümesinden oluşan belli formattaki sonuçları verir. Örneğin “Aa123456” açık metninin özet değerleri aşağıdaki gibidir.
Özet değer elde etmek için kullanılabilecek sayfa için bakınız:
https://defuse.ca/checksums.htm#checksums
Betik de temel olarak özetleme algoritmalarının çıktılarındaki bazı farklılıkları gözönünde bulundurmaktadır. Genel olarak dikkate alınan kriterler aşağıdaki gibidir:
- Örnek aldığı bir değerin özetini almakta ve bu özetin uzunluğu ile kendisine paramtre olarak verilen özetin uzunluğunu karşılaştırmaktadır. MD5 için “www.Blackploit.com”, SAM (LM:NTLM) için “bob”,… baz alınarak kullanıcının girdiği özet değerinin uzunluğu karşılaştırılır.
- Sadece rakam içerip içermediği kontrol edilir. GHash325 veya GHash323 özetleri sadece rakam değerleri içerir.
- Sadece harf içerip içermediği kontrol edilir.
- Büyük veya küçük harflerden oluşup oluşmadığı kontrol edilir.
- Sadece harf ve rakam içerip içermediği kontrol edilir.
- Belli karakterlerinin içeriği kontrol edilir. Örneğin 32. karakteri “:” ise SAM, MD5passsaltjoomla1,.. formatında olduğu; ilk 5 karakteri “sha1$” içeriyorsa SHA1Django özeti olduğu ihtimali vardır.
Betikte kullanılan veri yapıları için bakınız: https://docs.python.org/2/library/stdtypes.html
Başka bir özet değeri (“Aa123456” ifadesinin MD5 çıktısı) ile deneme yapıldığında ise muhtemel 2 sonuçtan birisi MD5 iken, onlarca daha az ihtimal verilen özet listelenmektedir.
Bunun yanında betiğin her zaman doğru sonuç vermediği de unutulmamalıdır. Örneğin “Aa123456” ifadesinin Tiger128,3 algoritması ile özetlenmiş hali betiğe girdi olarak verildiğinde muhtemel sonucların yanlış olarak listelendiği görülmektedir.