<?php Class Md5crypt { /** * Enter description here ... * @param unknown_type $str * @return String */ Public final static function Mdsha ($STR) { $code = substr (MD5 ($STR), 10); $code. = substr (SHA1 ($STR), 0, 28); $code. = substr (MD5 ($STR), 0, 22); $code. = substr (SHA1 ($STR), 16). MD5 ($STR); Return Self::chktoken ()? $code: null; } /** * Enter description here ... * @param unknown_type $param */ Private final static function Chktoken () { return true; } /** * Enter description here ... * @param unknown_type $txt * @param unknown_type $encrypt _key * @return ambigous <string, boolean> */ Private final static function keyed ($txt, $encrypt _key) { $encrypt _key = MD5 ($encrypt _key); $ctr = 0; $tmp = ""; for ($i = 0; $i < strlen ($txt); $i + +) { if ($ctr = = strlen ($encrypt _key)) $ctr = 0; $tmp. = substr ($txt, $i, 1) ^ substr ($encrypt _key, $ctr, 1); $ctr + +; } return $tmp; } /** * Enter description here ... * @param unknown_type $txt * @param unknown_type $key * @return String */ Public final static function Encrypt ($txt, $key) { Srand (Double) microtime () * 1000000); $encrypt _key = MD5 (rand (0, 32000)); $ctr = 0; $tmp = ""; for ($i = 0; $i < strlen ($txt); $i + +) { if ($ctr = = strlen ($encrypt _key)) $ctr = 0; $tmp. = substr ($encrypt _key, $ctr, 1). (Substr ($txt, $i, 1) ^ substr ($encrypt _key, $ctr, 1)); $ctr + +; } $_code = MD5 ($encrypt _key). Base64_encode (self::keyed ($tmp, $key)). MD5 ($encrypt _key. $key); Return Self::chktoken ()? $_code:null; } /** * Enter description here ... * @param unknown_type $txt * @param unknown_type $key * @return ambigous <string, boolean> */ Public final static function Decrypt ($txt, $key) { $txt = self::keyed (substr ($txt, Base64_decode)), $key); $tmp = ""; for ($i = 0; $i < strlen ($txt); $i + +) { $MD 5 = substr ($txt, $i, 1); $i + +; $tmp. = (substr ($txt, $i, 1) ^ $md 5); } Return Self::chktoken ()? $TMP: null; } /** * Enter description here ... * @var Unknown_type */ private static $_key = ' Lau '; } ?> |