Gönderen Konu: md5 Neden Decode Edilemez(detay)  (Okunma sayısı 754 defa)

Çevrimdışı weptiryaki

  • Genel Moderatör
  • Trade Sayısı: (0)
  • *
  • İleti: 89
  • Karma +3/-0
  • Cinsiyet: Bay
  • Webmaister
    • Profili Görüntüle
md5 Neden Decode Edilemez(detay)
« : 25 Kas 2012, 19:10:26 »
[h1]Bu konularda base64 ile şifrelenmiş verinin decode (yani deşifre etmek) edilebileceğini ama md5 ile şifrelenen verinin decode edilemeyeceğinden bahsetmiştim. Bu makalemde neden md5‘in decode edilemeyeceğini anlatacağım.
Bunun için öncelikle base64 ile md5 encode işlemlerini karşılaştıralım.

 Base64 Encode İşlemi

 php kod:
Kod: [Seç]
echo base64_encode("123"); echo base64_encode("123456");

  Ekran çıktısı:
Kod: [Seç]
MTIz MTIzNDU2 İlk satırda 3 haneli, ikinci satırda ise 6 haneli bir sayımız var. Bu sayıları encode işlemiyle şifreleyip ekran yazdırınca; ilk şifremiz 4, ikinci şifremiz ise 8 karakterli çıktı.

 md5 Encode İşlemi

php kod:
Kod: [Seç]
echo md5("123"); echo md5("123456");
Ekran çıktısı:
Kod: [Seç]
202cb962ac59075b964b07152d234b70 e10adc3949ba59abbe56e057f20f883eYine ilk satırda 3, ikinci satırda 6 haneli sayı kullandık ve bunları encode ederek ekrana yazdırdık. Bu sefer ise her ikisinde de 32 karakterden oluşan şifreler oluştu.
 Karşılaştırma Sonucu

123 ve 123456 verilerini ayrı ayrı şifreleyip ekran yazdırdık. Ekran çıktılarına dikkatlice bakacak olursanız, base64‘te 4 ve 8 karakterli şifreler oluşurken, md5‘te ise her ikisinde de 32 haneli şifreler oluştu. Buradan şu sonuç çıkıyor:
 
  • base64‘te bir verinin karakter sayısı arttıkça (123 ve 123456), oluşan şifrenin karakter sayısı (MTIz ve MTIzNDU2) da doğru orantılı olarak artıyor. Bu bize sonsuz sayıda şifre oluşturulabileceğini gösteriyor.
  • md5‘te ise bir verinin karakter sayısı arttıkça (123 ve 123456), oluşan şifrenin karakter sayısı (32 karakter) hiç değişmiyor ve sabit kalıyor. Bu da bize sonlu sayıda şifre oluşturulabileceğini gösteriyor.
Base64,
 bize sonsuz sayıda şifre verebiliyorsa; o halde her bir veri bir şifreyle eşleşmiş oluyor ve kolaylıkla decode edilebiliyor.
md5
‘te ise durum böyle değil. Bunu şöyle açıklayayım. Şimdi biz sonsuz sayıda veri üretebilir miyiz? Tabiki de üretiriz. Peki md5 sonsuz sayıda şifre üretebilir mi? Hayır! İşte bu yüzden md5 ile şifrelenen veri decode edilemez. Çünkü elimizde sonlu sayıda şifre olduğu için sonsuz sayıdaki veriyi birebir eşleştiremeyiz. (Altını çizdiğim yerlere dikkat edin.)
 md5 Hiç mi Kırılamaz


 Ben bu makalemde md5 ile şifrelenen verinin kırılamayacağını iddia etmiyorum, tabiki de kırılabilir. Ben sadece decode edilemeyeceğini söylüyorum. Peki md5 nasıl kırılır derseniz, bunu yapmak çok zor. Çünkü; her bir veriyi md5 ile şifreleyip kırılması istenen şifreyle eşleşip eşleşmediğine bakılması gerekiyor. Şifrelenmiş veri ise 123456 gibi basit bir şifre değil ise kırılması çok zaman alıyor.[/h1]
« Son Düzenleme: 25 Kas 2012, 19:12:45 Gönderen: weptiryaki »