ciao,
ho un server debian che deve cifrare in base64 un'informazione e richiamare una pagina php che la decodifica ed esegue alcune operazioni.
Sembra che debian e php non generano la stessa cosa:
codice:
DEBIAN: echo "test" | base64 --> dGVzdAo=
PHP: print base64_encode("test") --> dGVzdA==
apparentemente sono uguali se non per la differenza di o=
Ma sorprendentemente succede che eseguendo questo script unix
Codice PHP:
a=$(echo dGVzdAo= | base64 -d)
b=$(echo dGVzdA== | base64 -d)
echo $a
echo $b
if [ $a = $b ];
then
echo "uguali"
else
echo "diversi"
fi
l'output è "test" "test" "uguali".
mentre con php
Codice PHP:
<?php
$a = base64_decode("dGVzdAo=");
$b = base64_decode("dGVzdA==");
print "a $a";
print "
";
print "b $b";
print "
";
if($a == $b){
print "uguali";
}
else{
print "diversi";
}
?>
l'output è "test" "test" "diversi"
Come è possibile?
ma soprattutto come faccio a fargli passare in modo corretto l'informazione in base64 da debian a php in modo che php lo decodifichi "correttamente" (anche se gia lo fa) cosi che il confronto venga corretto?