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 文件编程综合案例-文件上传的实现
Jul 03 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
yii操作session实例简介
Jul 31 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
如何使用PHP给图片加水印
Oct 12 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
PHP的介绍以及优势详细分析
Sep 05 PHP
PHP7.3.10编译安装教程
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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
来自phpguru得Php Cache类源码
2010/04/15 PHP
PHP生成压缩文件实例
2015/02/07 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
Python实现简单状态框架的方法
2015/03/19 Python
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
python 阶乘累加和的实例
2019/02/01 Python
Python进程池Pool应用实例分析
2019/11/27 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
什么是servlet
2012/05/08 面试题
预备党员思想汇报范文
2014/01/11 职场文书
商务邀请函范文
2014/01/14 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
无房证明范本
2014/09/17 职场文书
银行授权委托书范本
2014/10/04 职场文书
假释思想汇报范文
2014/10/11 职场文书
2014年团委工作总结
2014/11/13 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
MySQL的join buffer原理
2021/04/29 MySQL