Codificando en base64url en php
Publicado por Alberto (2 intervenciones) el 13/06/2012 10:48:58
Hola a todos
Tengo un problemilla a ver si alguien me puede echar una mano.
Estoy haciendo un sencillo script que únicamente me codifique en base64url una cadena de caracteres y me la decodifique. Evidentemente el resultado de primero codificar y luego decodificar deberia ser la cadena original ¿no? Pues me sale diferente. Este es el código:
Sin embargo la salida de esto es:
Esto es prueba1: Prueba1
Esto es prueba1_base64: UHJ1ZWJhMQ
y esto deberia dar el texto original: VUhKMVpXSmhNUQFin
¿Que hago mal?
Gracias, un saludo!
Tengo un problemilla a ver si alguien me puede echar una mano.
Estoy haciendo un sencillo script que únicamente me codifique en base64url una cadena de caracteres y me la decodifique. Evidentemente el resultado de primero codificar y luego decodificar deberia ser la cadena original ¿no? Pues me sale diferente. Este es el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
function base64url_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT));
} ?>
<?php
$prueba1="Prueba1";
$prueba1_base64=base64url_encode($prueba1);
$prueba1_base64_a_normal=base64url_encode($prueba1_base64);
echo "Esto es prueba1: $prueba1 <br> Esto es prueba1_base64: $prueba1_base64 <br> y esto deberia dar el texto original: $prueba1_base64_a_normal";
echo "Fin";
?>
Sin embargo la salida de esto es:
Esto es prueba1: Prueba1
Esto es prueba1_base64: UHJ1ZWJhMQ
y esto deberia dar el texto original: VUhKMVpXSmhNUQFin
¿Que hago mal?
Gracias, un saludo!
Valora esta pregunta


0