PHP MD5 KIRICI-ÇEVİRİCİ SİTE YAPIMI

'CaptainKanka

O Şimdi Asker!
14 Eki 2012
1,683
1,256
localhost/admin.php
Merhaba Arkadaşlar

Bu gün sizlere md5 çevirici sitelerin mantığından bahsedip, istediğimiz karakterlerden oluşacak tüm kombinasyonların md5 hallerini otomatik olarak veritabanına girecek bir sayfa yapımından bahsedeceğiz.


p0qbke2.png


Öncelikle md5 mantığına kısaca değinelim. A harfinin md5 değeri her zaman aynı çıktıyı verir. Yani a değerinin ikinci bir md5 karşılığı yoktur. Md5 kırıcı siteleri her girilen girdiyi md5 e dönüştürür ama her md5 i kendi değerine dönüştüremez. Bizde bu yüzden oluşturucumuzla otomatik dönüştürmeler yapıp veritabanına ekleyeceğiz. Ve kullanıcının girdiği her değer veri tabanımızda olacak ve girildiğinde sergilenecek.
Artık başlayalım.
Veri tabanımızda bir adet md5kir adında tablo oluşturuyorum ve içine id, sifre ve md5 adına 3 adet sütun ekliyorum. İd otomatik artacak md5 ve sifreler ise utf8 turkish_ci olacak.
Şimdi veritabanı bağlantımızı yapalım.


PHP:
<?php

    $dsn = "mysql:host=localhost;dbname=md5kir;charset=utf8mb4";//veritabanı adını girin
    $user = "root";//kullanıcı adını girin
    $passwd = "";//şifreyi adını girin

    $db = new PDO($dsn, $user, $passwd);

    $db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_WARNING);

?>

Bağlantımızı vt.php olarak kaydettik. Bunu her sayfa başlangıcında çağıracağız.
Şimdi md5 oluşturucu sayfamızı yapalım. Bu sayfa ile veri tabanımıza istediğimiz karakterlerden oluşan tüm değerleri md5 ile şifreleyip veritabanına ekleyeceğiz. İlk olarak sayfamızın üstünde vt.php yi include ediyoruz. Sonrasında


PHP:
    $array = ['a', 'b', 'c', 'ç', 'd', 'e', 'f', 'g', 'ğ', 'h', 'ı', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'ö', 'p', 'r', 's', 'ş', 't', 'u', 'ü', 'v', 'y', 'z', 'A', 'B', 'C', 'Ç', 'D', 'E', 'F', 'G', 'Ğ', 'H', 'I', 'İ', 'J', 'K', 'L', 'M', 'N', 'O', 'Ö', 'P', 'R', 'S', 'Ş', 'T', 'U', 'Ü', 'V', 'Y', 'Z', 'X', 'W', 'Q', 'x', 'w', 'q', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ',', '.', '?', '!', '"', ';', ':', '+', '-', '*', '/', '='];
    
    $ben="";
    for ($i = 0;$i <= 85;$i++){
        
        for ($j = 0;$j <= 85;$j++){
            
            for ($a = 0;$a <= 85;$a++){
                
                for ($b = 0;$b <= 85;$b++){
                    
                    for ($c = 0;$c <= 85;$c++){
                        
                        for ($d = 0;$d <= 85;$d++){
                            
                            for ($e = 0;$e <= 85;$e++){
                                
                                for ($f = 0;$f <= 85;$f++){
                
                                    $ben = $array[$f]."".$array[$e]."".$array[$d]."".$array[$c]."".$array[$b]."".$array[$a]."".$array[$j]."".$array[$i];
                                    
                                    $foto = $ben;                       
                    
            
                                    $isim = md5($ben);
                                    
                                    
                                        
                                        $SqlSorgusu = "INSERT INTO md5ler (sifre,md5) VALUES (:foto, :isim)";
                    
                                        $st = $db->prepare($SqlSorgusu);
                                        
                                        $st->bindParam(':foto', $foto,PDO::PARAM_STR);
                                        $st->bindParam(':isim', $isim,PDO::PARAM_STR);
                                        
                                        $st->execute();
                                    
                                    usleep(10000);
                                    
                                }
                            }
                        }
                    }
                }
            }
        }
    }

En üstteki kodda olduğu gibi istediğimiz karakterleri diziye ekliyoruz. ben 85 karakter ekledim. Ve ben 8 karakterli şifreleri oluşturup veritabanına eklemek istiyorum. Bu yüzden 8 adet iç içe for kullandım ve ardından
PHP:
$ben = $array[$f]."".$array[$e]."".$array[$d]."".$array[$c]."".$array[$b]."".$array[$a]."".$array[$j]."".$array[$i];
kodu ile dönen değerlerimi harf harf yazdırıp ben değişkenine atadım. sonrasında ise verimizi veri tabanına ekledik. Burada dikkat edilmesi gereken konu verdiğimiz usleep değeridir. Sisteminiz hızlıysa bunu çok daha az değerle yapabilirsiniz. B 1000000 yaparsanız 1 saniye gecikme vermiş olursunuz. Olası çökme ve takılmaları engellemek için bu gecikmeyi veriyoruz. Ancak unutmayın 85 karakterle oluşturulacak 8 karakterli tüm değerleri veri tabanına yazması 315 382 000 gün sürecektir. Siz bunu daha düzenli hale getirip bir kaç bilgisayardan yaparsanız sayıyı azaltırsınız.

Şimdi geçelim girilen md5 değerini veri tabanından arayıp var ise sifre karşılığını yazdırma kısmına.
Yine sayfanın başında vertabanımızı include ediyoruz ve ardından


PHP:
<center><form action="" method="GET">
        
        <input class="ara" type="text" name="kelime" placeholder="Ara"/>
        <br>
        
        <input class="arab" type="submit" value="Arama yap" />
        
    </form>
    <?php
    
    if($_GET){
        $kelime = $_GET['kelime'];
        
        if(!$kelime){
            echo "Bir kelime yazınız.";
        }else{
            $sorgu = $db->prepare("SELECT * FROM md5ler WHERE md5 LIKE :keyword");
            $sorgu->bindparam(":keyword",$kelime,PDO::PARAM_STR);
            $sorgu->execute(array(':keyword' => '%' .$kelime. '%'));
            if($sorgu->rowCount()){
                foreach($sorgu as $row){
                    
                    echo $row['md5']." değerinin karşılığı = ".$row['sifre'];
                    }
                
            }else{
                echo "Aranan kelimeye ait bilgi bulunamadı";
            }
    }
    }
    ?>
    </center>

formdan girilen değerimizi get ile alıp veri tabanımızda md5ler tablosunda md5 sütununda aratıyoruz. Eşleşen varsa yazdırıyoruz yoksa kelime bulunamadı hatası verdiriyoruz.
Md5'e dönüştürücü sayfasına baktığımızda ise yine veri tabanını include edip


PHP:
<center><form action="" method="GET">
        
        <input class="ara" type="text" name="kelime" placeholder="Ara"/>
        <br>
        
        <input class="arab" type="submit" value="Arama yap" />
        
    </form>
    <?php
    
    
    
    if($_GET){
        $kelime = $_GET['kelime'];
        
        if(!$kelime){
            echo "Bir kelime yazınız.";
        }else{
            $yeni=md5($kelime);
            
            echo $kelime." değerinin karşılığı = ".$yeni;
                
            }
    }
    
    ?>
    </center>

girilen değeri md5 e çevirip ekrana yazdırıyoruz. Siz isterseniz oluşan md5 değerini veri tabanın da aratıp yoksa veri tabanına ekletebilirsiniz.
PHP ile md5 işlemleri ve istenilen karakterler arasından seçilen karakterlerle istenilen sayı kadar harften oluşan her kombinasyonu oluşturmayı ve veritabanına eklemeyi görmüş olduk.
İyi Forumlar



ctf0sk9.png

rtu29hy.png
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.