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.
Ö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.
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
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
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
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
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
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.
Ö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];
Ş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