安全使用base64_encode
-
- 为什么使用base64_encode编码?设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。甚至图片也可通过字串传递,然而,当字串中出现符号 '+','/','='会给地址传递造成一些混乱,所以安全使用base64_encode就很有必要了
在最近一个项目中使用了base64_encode传递中文参数,然而我遗憾的发现有些汉字经过base64_encode后会有符号 ‘+','='','\',这给传递参数造成了麻烦
翻了php.net 上面有段代码这样说
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);
}
编码时使用urlsafe_b64encode,解码时用urlsafe_b64decode,当然这仍然是有问题的,但你用模拟静态 url_rewrite时,分隔符号用 '-',又造成了混乱,这时,只好把分割符号改为'.'或者其他的符号了.
-
- 上一主题: php如何去除数组中相同的元素 下一主题: php关于任意文件下载
- 查找相关文章:base64_encode php
- 一
- 二
- 三
- 四
- 五
- 六
- 日
-
-
-
-
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
-
-
-
-
-
-
-
- Copyright ©2005 - 2007 老李的个人日志. All Rights Reserved
- 本日志程式及模版由老李(QQ:8989215)编写维护
- 粤ICP备06043306号