00001 <?php 00026 $drv = parse_ini_file(ZIGROOT.DRS.Z_DIR_PROJECTS.DRS.Z_PROJECT_DIR.DRS.ZIGSETTINGSDIR.DRS.'sec.ini.php', false); 00027 switch($drv['driver']){ 00028 case 'z': 00029 case 'Z': 00030 case 'x': 00031 case 'X': 00032 if(!@include_once(ZIGROOT.DRS.Z_DIR_SEC.DRS.'xor'.DRS.'xor.php')){ 00033 perror('Cant include '.ZIGROOT.DRS.Z_DIR_SEC.DRS.'xor'.DRS.'xor.php'); 00034 } 00040 class zCrypt_intermediate extends zCryptDrv_xor{} 00041 break; 00042 case 'm': 00043 case 'M': 00044 if(!@include_once(ZIGROOT.DRS.Z_DIR_SEC.DRS.'mcrypt'.DRS.'mcpt.php')){ 00045 perror('Cant include '.ZIGROOT.DRS.Z_DIR_SEC.DRS.'mcrypt'.DRS.'mcpt.php'); 00046 } 00052 class zCrypt_intermediate extends zCryptDrv_mcrypt{} 00053 break; 00054 case 'b': 00055 case 'B': 00056 if(!@include_once(ZIGROOT.DRS.Z_DIR_SEC.DRS.'bth'.DRS.'bth.php')){ 00057 perror('Cant include '.ZIGROOT.DRS.Z_DIR_SEC.DRS.'bth'.DRS.'bth.php'); 00058 } 00064 class zCrypt_intermediate extends zCryptDrv_both{} 00065 break; 00066 default: 00067 perror('Unknown Encryption dirver '.$drv['driver'].' on '.'sec.ini.php'); 00068 exit(1); 00069 } 00076 class zCryptObj extends zCrypt_intermediate{ 00077 var $skey; 00078 00079 function zCryptObj(){ 00080 $this->__construct(); 00081 } 00082 function __construct(){ 00083 parent::__construct(); 00084 $tmp_ini_key = parse_ini_file(ZIGROOT.DRS.Z_DIR_PROJECTS.DRS.Z_PROJECT_DIR.DRS.ZIGSETTINGSDIR.DRS.'zcpt.ini.php', false); 00085 $this->skey = $tmp_ini_key['key']; 00086 } 00094 function small_enc($string){ 00095 $key = $this->skey; 00096 for($i=0; $i<=strlen($string)-1; $i++){ 00097 for($j=0; $j<=strlen($key)-1; $j++){ 00098 $string[$i] = $string[$i]^$key[$j]; 00099 } 00100 if($i != 0 && $i != strlen($string)-1){ 00101 $string[$i] = $string[$i]^$string[$i-1]^$string[$i+1]; 00102 } 00103 } 00104 return $string; 00105 } 00113 function small_dcd($string){ 00114 $key = $this->skey; 00115 for($i=strlen($string)-1; $i>=0; $i--){ 00116 if($i == 0 || $i == strlen($string)-1){ 00117 for($j=0; $j<=strlen($key)-1; $j++){ 00118 $string[$i] = $string[$i]^$key[$j]; 00119 } 00120 }else{ 00121 $string[$i] = $this->small_enc($string[$i], $key)^$string[$i-1]^$string[$i+1]; 00122 } 00123 } 00124 return (int)$string; 00125 } 00126 } 00128 ?>