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中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
PHP查询网站的PR值
Oct 30 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
PHP中实现crontab代码分享
Mar 26 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 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数组比较实现查找连续数的方法
2015/07/29 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
vue实现计算器功能
2020/02/22 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
python ddt数据驱动最简实例代码
2019/02/22 Python
python判断无向图环是否存在的示例
2019/11/22 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
python基础之爬虫入门
2021/05/10 Python
Python中for后接else的语法使用
2021/05/18 Python