Rastgele Şifre Oluşturma,Tuzlu Şifreleme ve Doğrulama

PHP
44 lines
<?php
class Sifre {
var $tuz;
function sifrele($sifre, $tuz = '') {
$this->tuz=$tuz;
$buyu = '$1$';
$karakterler = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if (strlen($this->tuz) < 8) {
mt_srand ((double) microtime() * 1000000);
for ($i = 8; $i > strlen($this->tuz);) {
$this->tuz .= $karakterler{mt_rand (0, strlen($karakterler)-1)};
}
}
$passwd = crypt($sifre, $buyu . $this->tuz);
return($passwd);
}
function kontrol($sifre, $sifreli) {
$test = $this->sifrele($sifre, substr($sifreli, 3, 8));
if ($test == $sifreli) {
return(true);
}else{
return(false);
}
}
function rastgeleSifreUret() {
$karakterler = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
$this->tuz=mt_srand ((double) microtime() * 1000000);
for ($i = 8; $i > strlen($this->tuz);) {
$this->tuz .= $karakterler{mt_rand (0, strlen($karakterler)-1)};
}
return($this->tuz);
}
}
$p = new Sifre;
echo $rastgele= $p->rastgeleSifreUret();
echo "<br>";
echo $sifreli = $p->sifrele($rastgele,$tuz=rand(1,2));
echo "<br>";
if ($p->kontrol($rastgele,$sifreli)) {
echo "Doğru Şifre";
}else{
echo "Hatalı Şifre";
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
3 lines
h95Pjaec
$1$1xuDtzzC$VcOdiz8wCJRBZgdHhYjWt1
Doğru Şifre
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.