ThinkPHP 中使用 base64_encode 编码后带左斜杠”/“的安全编码方案
来源:互联网 发布:64码高清网络电视官方 编辑:程序博客网 时间:2024/05/16 18:37
最近公司需要用 PHP 写一个管理系统,框架用的是 ThinkPHP
然后做到一个模块的时候老夫提议采用 RSA 加密
但是大家都知道,RSA 加密后的结果是乱码,所以需要 base64_encode 一下
结果大概就是这个样子了
Cg8qnFW9V0KDdZDO9DjlyA47yUUZ5oCcS4epgW0AQc6lagzeHn
BPHmrHhT4cZ0Ar4Kkdzu5V2GaOormIgvS8Sg5eZDVGhz45DckM
Am3qLja5ArCwOAbyKSXUJOb0T21hVHOtSquNB2Zaj05xKmTsym
Yb5GUdT2Fn7H+bO9EfPpk87ArCwYpA4ow+PbrgyLr+Y5X2qVAr
3hMidgq/Xgee0G0WMSW/27ko3iYEcWygIiyN3i2V2ghJcmz47u
K+oLRt4sqlPw1JSxDTpaVpIEunlq5fLtg+3QFBYoHPIKv5UVbZ
lpobkLcLY3qPGN8bx34eiOC/b+9dumHDu0pyiMRXfw==
然后?然后我就纠结了,因为 ThinkPHP 里面对 URL 参数的定义可以这样:
/name/abc 等同于 ?name=abc
而转出来的 base64 是有左斜杠”/“的,尴尬症都犯了……
好了,正文部分,安全的编码和解码方案:
编码部分:
function urlsafe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data;}
解码部分:
function urlsafe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data);}
方案摘录自:URL 安全的字符串 base64 编解码
0 0
- ThinkPHP 中使用 base64_encode 编码后带左斜杠”/“的安全编码方案
- iOS 中Base base64_encode编码
- base64_encode和urlencode编码
- base64_encode进行编码传递url
- 将字符串以 BASE64 编码 base64_encode() base64_decode()
- 常见的编码方案
- php使用base64_encode和base64_decode对数据进行编码和解码
- thinkphp配置文件的编码问题
- 【python学习】编码时写路径使用后斜杠导致的unicode error问题解决办法
- 安全编码
- 安全编码
- 编码安全
- 信号的数字编码方案
- 各种编码方案的由来
- 斜杠u(/u)开头的编码,转化为汉字
- 应用于海量存储中高度容错的新编码方案
- JDK1.7实现中关于中文编码方案的选取
- PHP使用UTF8编码读取ACCESS的乱码问题解决方案
- 为什么XML需要序列化和反序列化
- HDU-2001
- uibarbuttonitem颜色
- git 托管pods
- 3.11 程序改错(二分查找)
- ThinkPHP 中使用 base64_encode 编码后带左斜杠”/“的安全编码方案
- Spring笔记--ApplicationContext
- spark1.6.1入门api实现单词计数
- 时间复杂度O()
- ListView与Adapter
- windows 安装 scrapy、pip、requests
- 中兴历年笔试题自己收藏用04
- windows系统上配置OpenBlas
- STL程序实例