Esta variante Base62 interpreta los bytes como un entero big-endian y lo escribe con el alfabeto fijo 0-9A-Za-z. Los bytes cero iniciales se convierten en caracteres 0 iniciales para reconstruir la secuencia original.
Usa Base62 para identificadores compactos sin puntuación en URLs o bases de datos. No existe un estándar Base62 universal: deben coincidir el orden del alfabeto y las reglas de ceros iniciales; esta codificación reversible no es hash ni cifrado y no incluye suma de comprobación.
// npm install base-x
import basex from 'base-x';
const base62 = basex('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz');
const encoded = base62.encode(Buffer.from('Hello'));
console.log(encoded);
// Output: 5TP3P3v
const decoded = Buffer.from(base62.decode('5TP3P3v')).toString('utf8');
console.log(decoded);
// Output: Hello
package main
import (
"fmt"
"github.com/eknkc/basex"
)
func main() {
base62, _ := basex.NewEncoding("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
encoded := base62.Encode([]byte("Hello"))
fmt.Println(encoded)
// Output: 5TP3P3v
decoded, _ := base62.Decode(encoded)
fmt.Println(string(decoded))
// Output: Hello
}
<?php
// composer require tuupola/base62
require 'vendor/autoload.php';
$base62 = new Tuupola\Base62;
$encoded = $base62->encode("Hello");
echo $encoded . "\n";
$decoded = $base62->decode($encoded);
echo $decoded . "\n";
// Output: Hello