<?php /** * 3des加密 */ class Encrypt{ public function pkcs5_pad($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } public function pkcs5_unpad($text) { $pad = ord($text{strlen($text) - 1}); if ($pad > strlen($text)){ return false; } return substr($text, 0, -1 * $pad); } /** * 加密 * @param $key * @param $input * @return string */ public function des3Encryption($key,$input){ $input = $this->pkcs5_pad($input,8); $td = mcrypt_module_open('tripledes', '', 'ecb', ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $en_res = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $en_res; } /** * 解密 * @param $key * @param $crypt * @return string */ public function des3Decrypt($key, $crypt){ $crypt = base64_decode($crypt); $td = mcrypt_module_open('tripledes', '', 'ecb', ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $decrypted_data = mdecrypt_generic($td, $crypt); mcrypt_generic_deinit($td); mcrypt_module_close($td); $decrypted_data = $this->pkcs5_unpad($decrypted_data); return rtrim($decrypted_data); } } $obj = new Encrypt(); $key = "9oyKs7cVo1yYzkuisP9bhA=="; $input = '123456'; $enc_res = base64_encode($obj->des3Encryption($key,$input)); echo $enc_res; $crypt = 'KkljLXJH9jnUg4 + UyiPjzsmohuAxRTi0Iybiub47dTySoEqIK2NKg / LgKzhXWRc3Eken0YW09xcApE6kJEUfoEIsrAWnsnSCeZjr62quFEMv51BlE7RmUALXIta + P3aVRl5D6fg + xpeIgsJAY9kkhmLmdQmbvB3hMqwF / Gh7X6ZYGr7dHo4DfjNFiHaSUnDQ6s8ik1I + ye85rr2uWIZ / yPuvrRuTw05 + gFe1z01v / kWzVLfKXmsxZOrPIpNSPsnv + 08mckR2nsNT8ljOr9ggcDQovf3FgybIw3w2OraFKhnrOebzsGV0Wt5gwesKGbg8s6wam1d8qGLxLyUno74iLNRa / Kaz6LjoKWmMmpol1pEDQnM / UNCKc3Sdp34yenHj1Fr8prPouOgVBMTlBqWLtrDTl1R6apVi + ZUOnw / cKexsmJiCsHEAHK7oy6vj / 44R1QGg6H8mF5tPIfZtvp8e2i + l0eC4yveATbjJ7LcZ4 + qAEbveQC8x / eix3PBjmhYeKANzeJqNEflTuvIHQIQWuKeT9Vw0nFrR3Dt + MBQrsMV / lWs1H3w4NrgQdQEtR / 7L2wxNR2tMHM64EHUBLUf + y6 + VuMP83CbwQurJQ6l0LGSKAunFwvRbJM5CYrr8qIitU / JTokRlYdPl0yDuNqjqyQe9nS8WymTachpKe1ZmP6jIOu6rxeC0F6qI0ZH / KagceLZRBiz / R7Bf3sT15jsfqBfSiXwSROhvsa2PsLRoFz8i4eMTiLfbu0xP + Mrs65coYec + gMJK7hzpQnc5I / UJjSmjL9slAVpJc74hRGJ3dwlV / zmnmZeyeQzX3qsF3rMnopsHrYLniK + Xu / Cwl7G55Su1pGekbno2 '; $desc_res = $obj->des3Decrypt($key,$crypt); echo '<pre>'; echo $desc_res; ?>