当我在base64中加密时,编写的值是正确的,我可以看到我想要的结果的正常值,当我使用函数解码base64(base64_decode)时会出现问题。
在结果中出现,最后是像Ã或7这样的字符。我设置了两个案例和我正在使用的所有代码
你能帮帮我吗?我发给你的所有代码......=============================================== ===================================
CIF_NIF::multiline++++1--2++aaaa--bbbbbb
Q0lGX05JRjo6bXVsdGlsaW5lKysrKzEtLTIrK2FhYWEtLWJiYmJiYg==
CIF_NIF::multiline++++1--2++aaaa--bbbbbb ÃÜ
=============================================== ===================================
VALOR::varchar++bool
VkFMT1I6OnZhcmNoYXIrK2Jvb2w=
VALOR::varchar++bool7
=============================================== ===================================
$.ajax({
url: _ajax_url,
type: "GET",
async: true,
data: {
info: data
},
contentType: "application/json; charset=utf-8",
//dataType: "jsonp",
success: function (data, textStatus) {....
}
});
=============================================== ===================================
return base64_encode($res);
当我在资源管理器中回显de return时,结果是我之前设置的值。
return base64_encode($res);
当我在资源管理器中回显de return时,结果是我之前设置的值。
$string = base64_decode($string_b64);
=============================================== =================================== 我添加了我的php页面的标题:
header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
header("Pragma: no-cache"); //HTTP 1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: text/html; charset=ISO-8859-1');
功能代码为:
public static function encrypting($array) {
$res = "";
$delimiter = array("||", "::", "++", "--");
if (is_array($array)) {
$gen = "";
//echo implode(">", $array[0]);
//echo count($array);
foreach($array as $clave = > $valor) {
$aux = [];
if ($gen != "") $gen. = $delimiter[0];
foreach($valor as $v) {
if (is_array($v)) {
array_push($aux, implode($delimiter[3], $v));
} else {
array_push($aux, $v);
}
}
$gen = "$clave$delimiter[1]".implode($delimiter[2], $aux);
}
$res = $gen;
} else $res = $array;
return base64_encode($res);
//return $res;
}
public static function decrypting($string_b64) {
$res = [];
$string = imap_base64($string_b64);
echo $string;
$delimiter = array("||", "::", "++", "--");
$pas1 = explode($delimiter[0], $string);
foreach($pas1 as $valor1) {
$i = 0;
$pas2 = explode($delimiter[1], $valor1);
$aux = [];
$pas3 = explode($delimiter[2], $pas2[1]);
foreach($pas3 as $valor2) {
if (strpos($valor2, $delimiter[3]) > 0) $aux[] = explode($delimiter[3], $valor2);
else $aux[] = trim($valor2);
}
$res[$pas2[0]] = $aux;
}
return $res;
}
=============================================== =================================== 使用示例:
$personalitzats1 = array("CIF_NIF" => array(false, "", "Aquest Camp es personalitzat...."));
$value = encrypting($personalitzats1)
decrypting($value);
问题在于解密我在base64_decode之后回显该值,并且是在字符出现时。
我已将页面保存为 ISO : cp1252 编码(标准)我不认为这是问题所在。
如果我使用像http://www.opinionatedgeek.com/dotnet/tools/base64decode/这样的外部网页,我在textarea中设置值Q0lGX05JRjo6bXVsdGlsaW5lKysrKzEtLTIrK2FhYWEtLWJiYmJiYg ==结果是正确的。