PHP中mcrypt加密实例如下:
<?php //当前mcrypt支持的加密模型 $modes_list = mcrypt_list_modes(); // Array // ( // [0] => cbc // [1] => cfb // [2] => ctr // [3] => ecb // [4] => ncfb // [5] => nofb // [6] => ofb // [7] => stream // ) //当前mcrypt支持的算法 $algorithms_list = mcrypt_list_algorithms(); // Array // ( // [0] => cast-128 // [1] => gost // [2] => rijndael-128 // [3] => twofish // [4] => cast-256 // [5] => loki97 // [6] => rijndael-192 // [7] => saferplus // [8] => wake // [9] => blowfish-compat // [10] => des // [11] => rijndael-256 // [12] => serpent // [13] => xtea // [14] => blowfish // [15] => enigma // [16] => rc2 // [17] => tripledes // [18] => arcfour // ) $key = "this is secret key"; $input = "Let us meet at 9 o'clock at the secret place"; //加密过程 $td = mcrypt_module_open('tripledes','','ecb','');//设置加密模式和算法 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);// 创建iv(初始化向量) mcrypt_generic_init($td,$key,$iv);// 根据密钥和iv初始化$td,完成内存分配等初始化工作 $encrypted_data = mcrypt_generic($td,$input);// 进行加密 mcrypt_generic_deinit($td);// 反初始化$td,释放资源 mcrypt_module_close($td); //解密过程 $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,$encrypted_data); mcrypt_generic_deinit($td); mcrypt_module_close($td); /** * 一个简单功能的加密解密类 * @author LHL 2016.08.03 */ class Mcrypt { /** * 获取key */ private static function getKey(){ return md5('exampleKey'); } /** * 加密方法 */ public static function encrypt($value){ $td = mcrypt_module_open('tripledes','','ecb',''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_RANDOM); $key = substr(self::getKey(),0,mcrypt_enc_get_key_size($td)); mcrypt_generic_init($td,$key,$iv); $ret = base64_encode(mcrypt_generic($td,$value)); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $ret; } /** * 解密方法 */ public static function dencrypt($value){ $td = mcrypt_module_open('tripledes','','ecb',''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_RANDOM); $key = substr(self::getKey(), 0, mcrypt_enc_get_key_size($td)); mcrypt_generic_init($td, $key, $iv); $ret = trim(mdecrypt_generic($td, base64_decode($value))) ; mcrypt_generic_deinit($td); mcrypt_module_close($td); return $ret; } } $sec = Mcrypt::encrypt('abc'); echo Mcrypt::dencrypt($sec);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理