Smf'nin şifreleme mantığını % 70 oranında çözmüş bulunmaktayım.ilgilenenler için;
Smf veritabanına sha1 i kullanarak sha1(kullanıcıadı+şifre) olarak kayıt ediyor.
Bizde bunu görebilmek için sha1.js yi kullanarak;
hex_sha1(kullanıcıadı+şifre) şeklinde yapınca eşit oluyorlar.
Ayrıca bilmek isteyenler için;
Smf login sırasında kullanıcı adı ve şifre iki defa şifreleniyor.Ve sondaki şifrelemeye karmaşık bir Session katılıyor.Karmaşıklığı şu;
if (!isset($_SESSION['rand_code']))
$_SESSION['rand_code'] = md5(session_id() . rand());
$sc = $_SESSION['rand_code'];
}
yıkarıdaki koddaki gibi önce Sessionu rastgele bir değer ile (rand ile) toplayarak md5 ile şifreliyor. Sonra bu $sc değerini login olunurken kullanıyor.
Formdan girilen değeri iki defa şifreliyor.ikinci şifrelemede $sc değerini kullanıyor:
Hash_passwd = Sha1(sha1(kullanıcıadı+şifre)+$sc)
Veritabanında daha önce şifrelenmiş olan passwd yi bir defa şifreleyor.
Veritabanınıyenidensifrele=sha1(Veritabani("passwd ")+$sc)
Eğer
Hash_passwd =
Veritabanınıyenidensifrele ise
Login olunuyor.
Bunu bulmak için çok uğraştım umarım başkalarına yardımcı olmuşumdur.işe yarayanlar elini
REP e götürmeleri rica olunur.