thinkPHP中U方法加密传递参数功能示例


Posted in PHP onMay 29, 2018

本文实例讲述了thinkPHP中U方法加密传递参数功能。分享给大家供大家参考,具体如下:

thinkPHP中的U方法用于对URL地址进行组装。可自动根据当前的URL模式和设置生成对应的URL地址。基本使用可参考 https://3water.com/article/51057.htm 

具体代码如下:

<?php
/**
 * 简单对称加密算法之加密
 * @param String $string 需要加密的字串
 * @param String $skey 加密EKY
 */
function encode($string = '', $skey = 'yourkey') {
 $strArr = str_split(base64_encode($string));
 $strCount = count($strArr);
 foreach (str_split($skey) as $key => $value)
  $key < $strCount && $strArr[$key].=$value;
 return str_replace(array('=', '+', '/'), array('O0O0O', 'o000o', 'oo00o'), join('', $strArr));
}
/**
 * 简单对称加密算法之解密
 * @param String $string 需要解密的字串
 * @param String $skey 解密KEY
 */
function decode($string = '', $skey = 'yourkey') {
 $strArr = str_split(str_replace(array('O0O0O', 'o000o', 'oo00o'), array('=', '+', '/'), $string), 2);
 $strCount = count($strArr);
 foreach (str_split($skey) as $key => $value)
  $key <= $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
 return base64_decode(join('', $strArr));
}
/**
将以上两个函数放在Common下的function.php公共函数中。
用法:常用语get传参
 前端:<a href="<{:U('Index/view',array('id'=>encode($data['id']),'name'=>encode($data['title'])))}>" rel="external nofollow" ><{$data.title}></a>
 后台:view方法中:$id = decode(trim(I("get.id")));即可还原
 view模板中:<font color="red"><{$Think.get.name|decode}></font>
**/
/*建议将key自行修改,尽量不要太长,不然url很长,适当即可,加密性能很好,亲测*/

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP程序员编程注意事项
Apr 10 PHP
php 字符转义 注意事项
May 27 PHP
PHP 图片水印类代码
Aug 27 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP count_chars()函数讲解
Feb 14 PHP
php实例化一个类的具体方法
Sep 19 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
在Laravel中使用DataTables插件的方法
May 29 #PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 #PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 #PHP
php实现表单提交上传文件功能
May 28 #PHP
PHP封装的非对称加密RSA算法示例
May 28 #PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 #PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 #PHP
You might like
PHP开发中常用的字符串操作函数
2011/02/08 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
php获取excel文件数据
2017/04/21 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
如何用javascript控制上传文件的大小
2006/10/26 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
Python守护线程用法实例
2017/06/23 Python
python处理csv中的空值方法
2018/06/22 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
把pandas转换int型为str型的方法
2019/01/29 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
python openCV自制绘画板
2020/10/27 Python
函授本科毕业自我鉴定
2013/10/09 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
汉语拼音教学反思
2016/02/22 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
Golang连接并操作MySQL
2022/04/14 MySQL