Codificador y decodificador Base62

Convierte texto, bytes en hexadecimal o archivos a Base62 y viceversa. La salida contiene solo dígitos y letras, así que se puede usar en URL, nombres de archivo e identificadores sin escapes.

Se ejecuta por completo en tu navegador. No se sube nada.

Cómo se usa

  1. Elige Codificar para convertir texto en Base62, o Decodificar para convertir Base62 de nuevo en texto.
  2. Selecciona en Alfabeto el orden que use tu sistema: 0-9 A-Z a-z (predeterminado) o 0-9 a-z A-Z.
  3. Escribe o pega la entrada, o abre un archivo pequeño (de hasta unos 20 KB).
  4. Copia el resultado o descárgalo como archivo.

¿Qué es Base62?

Base62 usa los diez dígitos, las 26 letras mayúsculas y las 26 letras minúsculas. Es el alfabeto más grande formado solo por letras y dígitos, así que el resultado no necesita escapes en URL, nombres de archivo, claves de bases de datos ni identificadores en el código. Cada carácter transporta unos 5,95 bits, por lo que la salida ocupa unas 1,34 veces el tamaño de la entrada: casi tan compacta como Base64, pero sin +, /, =, - ni _.

Como 62 no es una potencia de dos, esta herramienta trata toda la entrada como un único número grande y lo convierte a base 62, igual que Base58 y Base36. Cada byte cero inicial se escribe como un 0 inicial para que se conserve en la conversión de ida y vuelta. La entrada está limitada a unos 20 KB porque los cálculos se ralentizan con datos grandes.

No existe un único estándar Base62

A diferencia de Base64, Base62 no tiene RFC, y las implementaciones difieren en aspectos que hacen incompatibles sus resultados:

  • Orden del alfabeto. Esta herramienta ofrece 0-9A-Za-z (el predeterminado) y 0-9a-zA-Z. Algunas bibliotecas ponen las letras antes que los dígitos.
  • Ceros iniciales. Algunas implementaciones conservan un 0 por cada byte cero inicial, como esta herramienta, otras los descartan y los formatos de longitud fija rellenan el resultado hasta un ancho determinado.
  • Qué se codifica. Muchas funciones Base62 codifican un número entero, como el ID de una base de datos, en lugar de una secuencia de bytes. Otras dividen los datos en bloques de tamaño fijo.

Si una cadena de otro sistema se decodifica aquí como texto sin sentido, prueba la otra opción de alfabeto. Si sigue sin funcionar, es probable que ese sistema use otro método.

Dónde se usa Base62

Los acortadores de URL convierten un ID autoincremental en un código corto: siete caracteres Base62 cubren más de 3,5 billones de valores. Los ID ordenables como KSUID usan una forma Base62 fija de 27 caracteres, y muchos servicios usan Base62 para claves de API y tokens porque un doble clic selecciona toda la cadena y se puede pegar en cualquier sitio. Para convertir un solo número entero, usa el conversor de bases numéricas o unas pocas líneas de código:

// JavaScript: entero (BigInt) a Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
  return s;
}
toBase62(123456789n);   // '8M0kX'

Especificación

Alfabeto0-9 A-Z a-z
Tamaño de salidaAprox. 134% (conversión como número grande)
RellenoNinguno
EstándarSin estándar formal
Distingue mayúsculas y minúsculasSí

Ejemplos

Entrada (UTF-8)Salida
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Preguntas frecuentes

¿Base62 es seguro para URL?
Sí. Solo usa A-Z, a-z y 0-9, que nunca necesitan escapes en una URL. Base64URL también es seguro para URL, pero incluye los caracteres - y _.
¿Por qué mi cadena Base62 se decodifica como un texto incorrecto?

Las implementaciones de Base62 difieren en el orden del alfabeto y en el método. Cambia entre los alfabetos 0-9A-Za-z y 0-9a-zA-Z. Si ninguno funciona, probablemente la cadena se generó a partir de un número entero o con otro algoritmo.

¿Base62 distingue mayúsculas y minúsculas?

Sí. Las mayúsculas y las minúsculas representan valores distintos, así que nunca hay que convertir una cadena Base62 a mayúsculas ni a minúsculas.

¿Uso Base62 o Base58?
Base58 omite 0, O, I y l para que nadie los confunda al copiarlos a mano. Base62 conserva todas las letras y dígitos y es algo más corto. Elige Base58 para cadenas que escriben personas y Base62 para cadenas que procesan máquinas.