zoukankan      html  css  js  c++  java
  • PHP_EOL换行 与 base64编码

      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);
  • 相关阅读:
    AngularJS入门教程
    mobile web retina 下 1px 边框解决方案
    Python字典猜解
    20145313exp9
    20145313张雪纯Exp8 Web基础
    20145313张雪纯exp7
    20145313张雪纯信息搜集与漏洞扫描
    计算机病毒静态分析2
    计算机病毒静态分析1
    20145313张雪纯MSF基础应用实验
  • 原文地址:https://www.cnblogs.com/firstForEver/p/6392151.html
Copyright © 2011-2022 走看看