PHP项目中mcrypt加密如何实现,代码是什么
Admin 2022-08-16 群英技术资讯 279 次浏览
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了thinkphp5实现无限级分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
php导入时设置不同的编码:1、utf-8编码,utf8编码在xp系统不支持所有utf8编码,转码一下就解决了;2、gbk编码,访问网站的时候就下载到excel里面,要弄单元格区别的话,用table表格做网页的就可以了。
在php编程中使用引用传递是比较常有的事情,小编今天用了实例代码来给大家讲解这篇文章,如果你需要这方面的知识点,可以随时来参考下。
今天小编就为大家分享一篇关于PDO::errorInfo讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
建立一个websocket Worker,用来维持客户端长连接;在websocket Worker内部建立一个text Worker;开启一个内部端口,方便内部系统推送数据;通过workerman,向uid的页面推送数据;返回推送结果。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008