最近在整理代码发现了一个不错的东西,结合md5的加解密算法。网上关于php结合md5的加密,解密算法比较少的,其实php手册里面就有,改一改就行了。在此贴一下,用这算法要加载一个php模块mcrypt,不然用不了。
- //加密
- function string2secret($str)
- {
- $key = "123";
- $td = mcrypt_module_open(MCRYPT_DES,'','ecb','');
- $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
- $ks = mcrypt_enc_get_key_size($td);
- $key = substr(md5($key), 0, $ks);
- mcrypt_generic_init($td, $key, $iv);
- $secret = mcrypt_generic($td, $str);
- mcrypt_generic_deinit($td);
- mcrypt_module_close($td);
- return $secret;
- }
- //解密
- function secret2string($sec)
- {
- $key = "123";
- $td = mcrypt_module_open(MCRYPT_DES,'','ecb','');
- $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
- $ks = mcrypt_enc_get_key_size($td);
- $key = substr(md5($key), 0, $ks);
- mcrypt_generic_init($td, $key, $iv);
- $string = mdecrypt_generic($td, $sec);
- mcrypt_generic_deinit($td);
- mcrypt_module_close($td);
- return trim($string);
- }
- echo secret2string(string2secret("11111111111111111")); //显示结果是11111111111111111
- echo string2secret("11111111111111111"); //显示乱码
php经常用的加解密函数,base64_encode,base64_decode。