PHP项目中mcrypt加密如何实现,代码是什么
Admin 2022-08-16 群英技术资讯 719 次浏览
这篇文章主要讲解了“PHP项目中mcrypt加密如何实现,代码是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP项目中mcrypt加密如何实现,代码是什么”吧!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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
如何提高 Laravel 应用程序的速度?下面本篇文章给大家介绍一下优化 Laravel 运行效率的方法,希望对大家有所帮助!
浏览器和服务器之间只有一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求返回相应的程序,不能保持持久连接。这样就出现...
swoole比原生PHP快。Swoole是PHP的异步、并行、高性能网络通信引擎。节省PHP框架和全局对象每次请求创建销毁带来的性能损耗。主要是为了补充php在网络编程方面的不足。
这篇文章主要给大家分享php接口隔离原则的内容,对大家学习PHP有一定的帮助,有需要的朋友可以了解看看,接下来就跟随小编一起来学习一下吧。
laravel常用集合方法有:filter()、search()、chunk()、dump()、map()、zip()、whereNotIn()、max()、pluck()、each()、tap()、pipe()、contains()等等。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008