Şifreleyici Sınıfı

<?php
class Sifreleyici{
	private $_anahtar;
	public function __construct($anahtar = '', $md5 = true){
		$anahtar = str_split($md5 ? md5($anahtar) : sha1($anahtar), 1);
		$sinyal = false;
		$toplam = 0;
		foreach($anahtar as $karakter){
			if($sinyal){
				$toplam -= ord($karakter);
				$sinyal = false;
			}else{
				$toplam += ord($karakter);
				$sinyal = true;
			}
		}
		$this->_anahtar = abs($toplam);
	}
	public function sifrele($metin){
		$metin = str_split($metin, 1);
		$sonuc = '';
		foreach($metin as $karakter){
			$sonuc .= sprintf("%03x", ord($karakter) + $this->_anahtar);
		}
		return $sonuc;
	}
	public function coz($metin){
		$sonuc = '';
		$metin = str_split($metin, 3);
		foreach($metin as $karakter){
			$sonuc .= chr(hexdec($karakter) - $this->_anahtar);
		}
		return $sonuc;
	}
}
$anahtar = "asd";
$metin = "MerhabaDünya";
$s = new Sifreleyici($anahtar);
echo $es = $s->sifrele($metin);
echo "<br>";
echo $des = $s->coz($es);
?>

Çıktısı

 

Kullanıcı Tanımlı MD5 Şifreleme

<?php
define("ktMD5_CODE","GuvenliKodBuraya"); //Your eMD5 server-side code
function ktMD5($metin){
	return ktMD5::hash($metin);
}
class ktMD5 {
	static function ikili($metin){
		$cikti=null;
		$i=0;while($i < strlen($metin)){
			$cikti .= "+". str_pad(decbin(ord(substr($metin,$i++,1))), 8, "0", STR_PAD_LEFT);
		}
		return $cikti;
	}
	static function dogrula($metin1,$metin2){ 
		if($metin1 != "+" && $metin2 != "+"){ 
			if($metin1 xor $metin2){
				return "1"; 
			}else{
				return "0"; 
			} 
		}else{
			return "+"; 
		} 
	}
	static function hash($metin){
		if(!defined("ktMD5_CODE")){exit("<b>hata: </b> ktMD5_code tanımlanmadı");}
		$metin = trim($metin);$s = md5(ktMD5_CODE);$metin = md5($metin);
		$i=0;while($i != 32){$dizi_metin[] = substr($metin,$i,8);$i=$i+8;}
		$i=0;while($i != 32){$dizi_s[] = substr($s,$i,8);$i=$i+8;}
		$metin1 = ktMD5::ikili($dizi_s[0].$dizi_metin[1].$dizi_s[2].$dizi_metin[3]);
		$metin2 = ktMD5::ikili($dizi_metin[0].$dizi_s[1].$dizi_metin[2].$dizi_s[3]);
		$kombin=null;
		$e=0;
		while($e < strlen($metin1)){ 
			$kombin .= ktMD5::dogrula(substr($metin1,$e,1),substr($metin2,$e,1)); 
			$e++; 
		}
		$cikti = md5($kombin);
		return $cikti;
	}
}
echo MD5("1234568");
echo "<br>";
echo ktMD5("1234568");
?>

Çıktısı

fe743d8d97aa7dfc6c93ccdc2e749513
e32f8d4f9b769346a74fe8d1a82c5e56

 

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

<?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";
}
?>

Çıktısı

h95Pjaec
$1$1xuDtzzC$VcOdiz8wCJRBZgdHhYjWt1
Doğru Şifre