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编程之高级技巧——利用Mysql函数
Oct 09 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
php实现可逆加密的方法
Aug 11 PHP
php生成动态验证码gif图片
Oct 19 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 PHP
Laravel登录失败次数限制的实现方法
Aug 26 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
linux php mysql数据库备份实现代码
2009/03/10 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
SQL面试题
2013/12/09 面试题
剪枝的学问教学反思
2014/02/07 职场文书
促销活动方案模板
2014/02/24 职场文书
解除劳动合同协议书
2014/04/14 职场文书
民事起诉书范本
2015/05/19 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
Go语言-为什么返回值为接口类型,却返回结构体
2021/04/24 Golang
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js