PHP加密数据操作类
class PHPMcrypt{ /* 操作句柄 */ private $crypt = null; /* 生成的密钥 */ private $key = null; /* 初始向量 */ private $iv = null; /* 支持的最长密钥 */ private $ks = null; /* 数据类型是否可以接受 */ private $accept = false; // false 不可以接受 true 可以接受 /* 是否需要序列化 */ private $serialize = false; //false 不需要序列化 true 需要序列化 public function __construct($secretKey='!@#$%^'){ /* 打开加密算法和模式 */ $this->crypt = mcrypt_module_open('tripledes','','nofb',''); /* 创建初始向量,并且检测密钥长度。 */ $this->iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($this->crypt), MCRYPT_RAND); /* 获取支持的最长密钥 */ $this->ks = mcrypt_enc_get_key_size($this->crypt); /* 生成密钥 */ $this->key = substr(md5($secretKey),0,$this->ks); } /** *数据类型是否可以接受和序列化 *$data int|string 要加密的数据 *return boolean */ private function acceptAndSerialize($data){ $type = gettype($data); switch($type){ case 'string': case 'integer': case 'float': case 'double ': $this->accept = true; $this->serialize = false; break; case 'array': case 'object': $this->accept = true; $this->serialize = true; break; default: $this->accept = false; $this->serialize = false; } } /** *加密数据 *$data mixed 要加密的数据 *return string|boolean */ public function encrypt($data){ $this->acceptAndSerialize($data); if( empty($data) || ($this->accept == false) ){ return false; } //序列化 if( $this->serialize ){ $data = serialize($data); } /* 初始化加密 */ mcrypt_generic_init($this->crypt,$this->key,$this->iv); /* 加密数据 */ $encrypt = mcrypt_generic($this->crypt,$data); /* 字符串以 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利传输 */ $encrypt = base64_encode($encrypt); if( $this->serialize ){ $encrypt .='|'.$this->serialize; } /* 结束加密,执行清理工作 */ mcrypt_generic_deinit($this->crypt); return $encrypt; } /** *解密数据 *$data string 要解密的数据 *return mixed */ public function decrypt($data){ if( empty($data) ){ return false; } /* 判断是否序列化 */ if( strpos($data,'|') ){ $tempData = explode('|',$data); $data = $tempData[0]; $this->serialize = $tempData[1]; } /* 初始化解密 */ mcrypt_generic_init($this->crypt,$this->key,$this->iv); /* 解密数据 */ $data = base64_decode($data); $decrypt = mdecrypt_generic($this->crypt,$data); /* 解序列化 */ if( $this->serialize){ $decrypt = unserialize($decrypt); } /* 结束加密,执行清理工作 */ mcrypt_generic_deinit($this->crypt); return $decrypt; } public function __destruct(){ /* 关闭加密模块 */ mcrypt_module_close($this->crypt); } } //int|float|字符串 <pre name="code" class="html">$oPHPMcrypt = new PHPMcrypt(123); $encrypt = '中国*上海-021'; $encrypt = $oPHPMcrypt->encrypt($encrypt); echo $encrypt; echo '<br>'; $decrypt = $oPHPMcrypt->decrypt($encrypt); echo $decrypt; //数组|对象 $oPHPMcrypt = new PHPMcrypt(123); $encrypt = array('name'=>'张三','age'=>100); $encrypt = $oPHPMcrypt->encrypt($encrypt); echo $encrypt; echo '<br>'; $decrypt = $oPHPMcrypt->decrypt($encrypt); print_r($decrypt);
以上就介绍了PHP加密数据操作类,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

本篇文章带大家解读vue源码,来介绍一下Vue2中为什么可以使用 this 访问各种选项中的属性,希望对大家有所帮助!

同事因为this指向的问题卡住的bug,vue2的this指向问题,使用了箭头函数,导致拿不到对应的props。当我给他介绍的时候他竟然不知道,随后也刻意的看了一下前端交流群,至今最起码还有70%以上的前端程序员搞不明白,今天给大家分享一下this指向,如果啥都没学会,请给我一个大嘴巴子。

watch4pro和gt各自具有不用的特点和适用场景,如果注重功能的全面性、高性能和时尚外观,同时愿意承担较高的价格,那么Watch 4 Pro可能更适合。如果对功能要求不高,更注重电池续航和价格的合理性,那么GT系列可能更适合。最终的选择应根据个人需求、预算和喜好来决定,建议在购买前仔细考虑自己的需求,并参考各种产品的评测和比较,以做出更明智的选择。

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求
