萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php加密解密實用類分享

php加密解密實用類分享

 加密和解密是一項常規任務,這裡介紹一個加解密類。如果你想在用戶忘記密碼時為他或她找回原來的密碼,那麼這個類是個好用的工具

用戶注冊的密碼一般不會明文保存,總得加個密先。最簡單的當然是在數據庫sql語句中調用md5函數加密用戶密碼。這裡介紹一個加解密類。如果你想在用戶忘記密碼時為他或她找回原來的密碼,那麼這個類是個好用的工具。當然,這個加解密類也可用於其他用途。  代碼如下: <?php   class crypt {       private $skey;       public function __construct($key) {         $this->skey = hash("md5", $key, true); //32位skey     }       public function safe_b64encode($string) {         $data = base64_encode($string);         $data = str_replace(array('+', '/', '='), array('-', '_', ''), $data);         return $data;     }       public function safe_b64decode($string) {         $data = str_replace(array('-', '_'), array('+', '/'), $string);         $mod4 = strlen($data) % 4;         if ($mod4) {             $data .= substr('====', $mod4);         }         return base64_decode($data);     }       public function encode($value) {         if (!$value) {             return false;         }         $text = $value;         $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);         $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);         return trim($this->safe_b64encode($crypttext));     }       public function decode($value) {         if (!$value) {             return false;         }         $crypttext = $this->safe_b64decode($value);         $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);         $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);         $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv);         return trim($decrypttext);     }   }  
copyright © 萬盛學電腦網 all rights reserved