当GET参数出现时,base64_decode会发生变化

时间:2014-03-31 15:28:33

标签: php base64

我有一个包含以下内容的PHP脚本:

$request_data='teststring';
var_dump($request_data);
$bd = base64_decode($request_data);
var_dump($bd);
die()

当我加载页面时,它会输出

string(10) "teststring" string(7) "��-���"

但是,如果我将GET字符串传递给页面 - 根本就是任何字符串 - 它会输出:

string(10) "teststring" string(7) "µë-²Úâž"

发生了什么事?如何将GET字符串传递给页面改变了base64_decode的功能?如果我将$ request_data设置为有效的base64编码数据,那么GET参数不会执行任何操作,并且它会正确解码。但是当它是一个无效的字符串时,它会根据参数对它进行不同的解码。为什么是这样?我该如何解决?

我正在尝试传入base64编码的加密数据,有时会解码为非ascii字符,并且发现当发生这种情况时我会得到错误的值。我需要一种方法来安全地base64_decode任何数据,无论它是否是字母数字字符串。

0 个答案:

没有答案