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 相关文章推荐
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
php 文本文件的读取效率
Feb 10 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
php截取字符串函数分享
Feb 02 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
php截取视频指定帧为图片
May 16 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
php 使用expat方式解析xml文件操作示例
Nov 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
php正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
php测试kafka项目示例
2020/02/06 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
JS继承 笔记
2011/07/13 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
python检查指定文件是否存在的方法
2015/07/06 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
django 单表操作实例详解
2019/07/30 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
产品销售员岗位职责
2013/12/18 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
五年级下册复习计划
2015/01/19 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Python&Matlab实现樱花的绘制
2022/04/07 Python
python神经网络ResNet50模型
2022/05/06 Python