<_secrect_key = C("AESPASSWORD"); } /** * 加密方法 * @param string $str * @return string */ public function aesencrypt($str) { //AES, 128 ECB模式加密数据 $screct_key = $this->_secrect_key; // $screct_key = base64_decode($screct_key); $str = rtrim($str, '\0'); $str = $this->addPKCS7Padding($str); $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB), MCRYPT_RAND); $encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_ECB, $iv); return base64_encode($encrypt_str); } /** * 解密方法 * @param string $str * @return string */ // public function aesdecrypt($str){ // //AES, 128 ECB模式加密数据 // $screct_key = $this->_secrect_key; // $str=str_replace(" ","+",$str); // $str=base64_decode($str); // $str=rtrim($str , '\0'); // // $str = $this->stripPKSC7Padding($str); // $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND); // $encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $screct_key, $str, MCRYPT_MODE_ECB, $iv); // $encrypt_str = $this->addPKCS7Padding($encrypt_str); // $encrypt_str = preg_replace( '/[\x00-\x1F]/','',$encrypt_str); // return $encrypt_str; // } /* 解密方法 * @param string $str * @return string */ function aesdecrypt($str) { $key = $this->_secrect_key; $str = base64_decode($str); $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB); $block = mcrypt_get_block_size('rijndael_128', 'ecb'); $pad = ord($str[($len = strlen($str)) - 1]); $len = strlen($str); $pad = ord($str[$len - 1]); return substr($str, 0, strlen($str) - $pad); } /** * 填充算法 * @param string $source * @return string */ function addPKCS7Padding($source) { $source = trim($source); $block = mcrypt_get_block_size('rijndael-128', 'ecb'); $pad = $block - (strlen($source) % $block); if ($pad <= $block) { $char = chr($pad); $source.= str_repeat($char, $pad); } return $source; } /** * 移去填充算法 * @param string $source * @return string */ function stripPKSC7Padding($source) { $source = trim($source); $char = substr($source, -1); $num = ord($char); if ($num == 62) return $source; $source = substr($source, 0, -$num); return $source; } } // $obj=new Aes(); // $destr=$obj->aesencrypt("123456"); // echo $destr."
"; // echo $obj->aesdecrypt("yXVUkR45PFz0UfpbDB8/ew==")."
";>