标题:使用PHP的mcrypt模块进行DES加密/解密 出处:Felix021 时间:Sat, 18 Jun 2011 14:31:38 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?2020 内容: 网上摘下来的代码,没什么好说的了(因为那一堆 mcrypt_* 函数太乱了,用就是了): strlen($text)) { return false; } if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) { return false; } return substr($text, 0, -1 * $pad); } public static function encrypt($key, $data) { $size = mcrypt_get_block_size('des', 'ecb'); $data = DES::pkcs5_pad($data, $size); $td = mcrypt_module_open('des', '', 'ecb', ''); $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); @mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $data); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $data; } public static function decrypt($key, $data) { $td = mcrypt_module_open('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, $data); mcrypt_generic_deinit($td); mcrypt_module_close($td); $result = DES::pkcs5_unpad($decrypted); return $result; } } /* test code $in = "04fMaWegkH1/BL9CNYxgusFpYK8wdraBX06mPiRmxJP+uVm31GQvyw=="; $des = base64_decode($in); echo DES::decrypt("12345678", $des); echo "\n"; $in = "cea3e8e1659582206e0be32539729e9f"; $des = DES::encrypt("12345678", $in); $out = base64_encode($des); echo $out; echo "\n"; // */ ?> Generated by Bo-blog 2.1.0