www.gusucode.com > Crossphp开源开发框架 v1.4.1源码程序 > code/src/Lib/Mcrypt/DESMcrypt.php
<?php /** * Cross - a micro PHP 5 framework * * @link http://www.crossphp.com * @license MIT License */ namespace Cross\Lib\Mcrypt; /** * @Auth: wonli <wonli@live.com> * Class DESMcrypt * @package Cross\Lib\Mcrypt */ class DESMcrypt extends DEcode { /** * @var string */ protected $key; /** * @var HexCrypt */ protected $hexCrypt; /** * 设置key * * @param $key */ function __construct($key) { $this->key = $key; $this->hexCrypt = new HexCrypt (); } /** * @param $input * @return string */ public function enCode($input) { $size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_ECB); $input = $this->pkcs5_pad($input, $size); $key = $this->key; $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_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 = $this->hexCrypt->EnCode($data); return $data; } /** * @param $encrypted * @return bool|string */ public function deCode($encrypted) { $encrypted = $this->hexCrypt->DeCode($encrypted); $key = $this->key; $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, ''); //使用MCRYPT_DES算法,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); return $y; } }