1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <?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));
}
function test($data){
// Affichage de la valeur de départ.
echo $data . " = ";
// Nombre aléatoire et tiret en préfixe de notre valeur utile.
$data = str_pad(strval(mt_rand(0, 999999)), 6, '0', STR_PAD_LEFT) . "-" . $data;
// Encodage et affichage de nos données.
$data = base64url_encode($data);
echo $data . " = ";
// Décodage et affichage pour vérification de la réversibilité de l'algorithme.
$data = base64url_decode($data);
$data = substr(stristr($data, "-"), 1);
echo $data . "<br />\n";
}
for ($i = 0; $i < 25; $i++){
$number = strval($i);
test(str_pad($number, 6, '0', STR_PAD_LEFT));
}
for ($i = 0; $i < 25; $i++){
$number = strval(mt_rand(0, 999999));
test(str_pad($number, 6, '0', STR_PAD_LEFT));
}
?> |
Partager