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中的数组操作函数整理
Aug 18 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
php简单实现数组分页的方法
Apr 30 PHP
PHP未登录自动跳转到登录页面
Dec 21 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
PHP dirname功能及原理实例解析
Oct 28 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 字符串 小常识
2009/06/05 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
python自动化测试之连接几组测试包实例
2014/09/28 Python
小小聊天室Python代码实现
2016/08/17 Python
Django admin美化插件suit使用示例
2017/12/12 Python
python使用matplotlib绘制热图
2018/11/07 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
python动态进度条的实现代码
2019/07/03 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
Python gevent协程切换实现详解
2020/09/14 Python
python中@contextmanager实例用法
2021/02/07 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
厨师长岗位职责
2014/03/02 职场文书
公司合作协议书范本
2014/04/18 职场文书
课外访万家心得体会
2014/09/03 职场文书
考试作弊检讨书
2014/10/21 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS