Ne tür bir şifreleme/kodlama kullanıldığını bulmanın bir yolu var mı?
Örneğin, parolayı veritabanında şifrelenmiş bir biçimde saklayan bir web uygulamasını test ediyorum (WeJcFMQ/8+8QJ/w0hHh+0g==
). Hangi hashing veya şifrelemenin kullanıldığını nasıl belirleyebilirim?
Düzenleme: hashID adında çok güzel bir betik fark ettim. İsim onu hemen hemen açıklıyor.
Genel olarak konuşmak gerekirse, eğitimli tahminler yapmak için deneyim kullanmak bu işlerin nasıl yapıldığını gösterir.
Burada çok sayıda hash çıktısı içeren bir liste var, böylece her birinin nasıl göründüğünü bilir ve imzalar / desenler oluşturabilir veya sadece optik olarak doğrulayabilirsiniz.
- [Online Hash Crack Hashes Generator](https://www.onlinehashcrack.com/hash-generator.php)
- [InsidePro Yazılım Forumu > Hash Türleri](https://web.archive.org/web/20160403135857/https://forum.insidepro.com/viewtopic.php?t=8225) (Archive.org üzerinden)
Öncelikle dikkat etmeniz gereken iki *ana* şey vardır:
- hash uzunluğu (her hash fonksiyonunun belirli bir çıktı uzunluğu vardır)
- kullanılan alfabe (tüm harfler İngilizce mi? 0-9 arası rakamlar ve A-F yani hex mi? varsa hangi özel karakterler var?)
Bazı şifre kırma programları (örneğin John the ripper) kullanılan algoritmayı tahmin etmek için girdi üzerinde bazı desen eşleştirmeleri uygular, ancak bu yalnızca genel karmalar üzerinde çalışır. Örneğin, herhangi bir hash çıktısını alır ve her harfi 1 döndürürseniz, çoğu desen eşleştirme şeması başarısız olur.
Tek yol tahmin etmektir. Tecrübe ile tahmin çalışmaları daha doğru olacaktır.
Örneğin: Çıktı uzunluğuna göre: MD5 çıktısı 128 bit veya 16 bayt, SHA1 çıktısı 160 bit veya 20 bayttır. Çıktının karakter setine göre: BASE64 yazdırılabilir karakterlerle çıktı üretir.
Günün sonunda, size nasıl yapılacağını öğreten şey deneme-yanılma yaklaşımıdır.
Bunun tek yolu, size bunu söyleyen bazı meta verilerin olmasıdır. Örneğin, son zamanlarda PDF'lerle çalışıyorum ve format filtre, algoritma, anahtar boyutu vb. içeren bir sözlük içeriyor. Ancak elinizdeki tek şey şifreli metin ise, o zaman elinizdeki tek şey opak bir veri bloğudur.