码迷,mamicode.com
首页 > Web开发 > 详细

PHP_EOL换行 与 base64编码

时间:2017-02-12 23:58:15      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:decode   替换   rsa加密   str   内容   个数   class   div   原理   

  base64编码包括64个字符:10个数字(0-9),26*2个字母(a-zA-Z),+,\

  其中还有一个第65个字符=作为后缀,没有实际作用。

  来一段代码说明个问题:  

 1 <?php
 2 
 3 $str = ‘1234567‘;
 4 
 5 $en = base64_encode($str);// MTIzNDU2Nw==
 6 
 7 $en = ‘MTIzND     U 
 8 
 9      2Nw==========‘;
10 
11 echo base64_decode($en);// 1234567

可以看到,即使修改了base64编码后的内容,中间加空格、换行,后边加一堆=号,仍然可以decode出来原始的字符串。

因为base64编码没有空格、换行的字符,所以不影响。

 

今天写php和java对接一个接口时候,一个base64编码后的字符串,我看了下长度是174个字节,显然不是4的倍数(base64编码的原理决定了一定是4的倍数)。但是仍然可以decode出来。后来发现原来是多出了两个换行符。

如果希望利用4的倍数,比如我这个接口是用到RSA加密的,需要这个172,所以要替换掉换行。

php有个预定义变量PHP_EOL可以搞定

$str = str_replace(PHP_EOL, ‘‘, $str);

 

PHP_EOL换行 与 base64编码

标签:decode   替换   rsa加密   str   内容   个数   class   div   原理   

原文地址:http://www.cnblogs.com/firstForEver/p/6392151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!