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

 

Şifreleri Şifrelemek ve Çözmek

<?php
class Sifre{
   var $k;
   function Sifre($m){
      $this->k = $m;
   }
   function ed($t) { 
      $r = md5($this->k); 
      $c=0; 
      $v = ""; 
      for ($i=0;$i<strlen($t);$i++) { 
         if ($c==strlen($r)) $c=0; 
         $v.= substr($t,$i,1) ^ substr($r,$c,1); 
         $c++; 
      } 
      return $v; 
   } 
   function sifrele($t){ 
      srand((double)microtime()*1000000); 
      $r = md5(rand(0,32000)); 
      $c=0; 
      $v = ""; 
      for ($i=0;$i<strlen($t);$i++){ 
         if ($c==strlen($r)) $c=0; 
         $v.= substr($r,$c,1) . 
             (substr($t,$i,1) ^ substr($r,$c,1)); 
         $c++; 
      } 
      return base64_encode($this->ed($v)); 
   } 
   function coz($t) { 
      $t = $this->ed(base64_decode($t)); 
      $v = ""; 
      for ($i=0;$i<strlen($t);$i++){ 
         $md5 = substr($t,$i,1); 
         $i++; 
         $v.= (substr($t,$i,1) ^ $md5); 
      } 
      return $v; 
   } 
}
$sifre = "123456";
$cr64 = new Sifre($sifre);
$e = $cr64->sifrele($sifre);
echo "Şifreli = ".$e."<br>";
$d = $cr64->coz($e);
echo "Çözülmüş = ".$d."<br>";
?>

Çıktısı

Şifreli = UzYGZVBkAT8AOFBl
Çözülmüş = 123456