# 二、PHP 3des 加密类 > 类库如下,简单粗暴 ``` <?php namespace test; /** * 3DES加解密 * @Author: 兽医 * @version: v1.8 * 2017年5月23日 */ class Encrypt { public $key = "加密解密的密码,任意字符串"; <span class="token2">function Crypt3Des($key){ $this->key=$key; } //数据加密 <span class="token2">function encrypt($input){ $size = mcrypt_get_block_size(MCRYPT_3DES,'ecb'); $input = $this->pkcs5_pad($input, $size); $key = str_pad($this->key,24,'0'); $td = mcrypt_module_open(MCRYPT_3DES, '', 'ecb', ''); $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); @mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); <span class="token2">return $data; } //数据解密 <span class="token2">function decrypt($encrypted){ $encrypted = base64_decode($encrypted); $key = str_pad($this->key,24,'0'); $td = mcrypt_module_open(MCRYPT_3DES,'','ecb',''); $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND); $ks = mcrypt_enc_get_key_size($td); @mcrypt_generic_init($td, $key, $iv); $decrypted = mdecrypt_generic($td, $encrypted); mcrypt_generic_deinit($td); mcrypt_module_close($td); $y=$this->pkcs5_unpad($decrypted); <span class="token2">return $y; } <span class="token2">function pkcs5_pad ($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); <span class="token2">return $text . str_repeat(chr($pad), $pad); } <span class="token2">function pkcs5_unpad($text){ $pad = ord($text{strlen($text)-1}); <span class="token2">if ($pad > strlen($text)) { <span class="token2">return false; } <span class="token2">if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){ <span class="token2">return false; } <span class="token2">return substr($text, 0, -1 * $pad); } } ``` > 调用方法 ``` date_default_timezone_set('PRC'); include "demo.php"; //引入这个类 $encrypt = <span class="token2">new \test\Encrypt(); ###加密 $param = "rewrewrwerwerewrwerffdvdsfsd"; $res = $encrypt->encrypt($param); $res = $encrypt->decrypt($res); ```