Codificador Base58Check
Unos datos de dirección Bitcoin de 21 bytes se convierten en 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM, 33 caracteres con una suma de verificación doble SHA-256 de cuatro bytes, así que un carácter mal copiado falla la comprobación en vez de dar bytes erróneos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Modo de cálculo
- Encode
- Formato de salida
- Hex
- Resultado
- 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
- Base58Check
- 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM
- Suma de verificación (hex)
- d61967f6
- Nombre del alfabeto
- bitcoin
Base58Check es el formato binario a texto de Bitcoin que envuelve una carga útil con una suma de verificación de cuatro bytes derivada de un doble SHA-256 y después codifica la secuencia completa con el alfabeto Base58 de Bitcoin. A diferencia del Base58 simple, un solo carácter alterado casi siempre hace fallar la verificación de la suma en lugar de decodificar en silencio bytes incorrectos, algo crítico para direcciones de monedero, claves privadas WIF y cualquier cadena que las personas copian a mano.
Qué añade Base58Check sobre Base58
El Base58 simple proyecta bytes sobre cincuenta y ocho caracteres inequívocos tratando la carga como un entero big-endian y dividiendo repetidamente entre cincuenta y ocho, con el alfabeto Bitcoin que elimina el cero, la O mayúscula, la I mayúscula y la L minúscula. Esa codificación es amable para humanos, pero no protege la integridad: un glifo mal escrito se convierte en otra cadena válida que decodifica a bytes distintos. Base58Check cierra ese hueco.
Antes de codificar, el codificador calcula el SHA-256 de la carga, luego el SHA-256 de ese resumen, y añade los primeros cuatro bytes del hash exterior como suma de verificación. El búfer combinado (carga original más esos cuatro bytes) se codifica en Base58 exactamente como el Base58 crudo, incluida la convención de ceros iniciales a unos iniciales.
Al decodificar, el proceso se invierte: la decodificación Base58 produce bytes; los últimos cuatro son la suma reclamada; el doble SHA-256 de la carga restante debe igualar esos cuatro bytes o la operación falla. Cuatro bytes de suma dan en la práctica unas posibilidades de una entre cuatro mil millones de que un error de un solo carácter pase desapercibido, por eso las direcciones P2PKH de Bitcoin, muchas claves extendidas y herramientas afines estandarizan esta construcción.
Esta landing se dirige a quien busca un codificador Base58Check, un decodificador Base58Check o un conversor de sumas Bitcoin en línea; no es Base58 simple sin suma, no es Base64 y no es un clasificador completo de tipos de dirección que interprete bytes de versión en cada red.
Consejos prácticos, vectores clásicos y diferencias con Base58 simple
Prefiera encode cuando disponga de un hash con prefijo de versión u otra carga binaria en hex y necesite una cadena segura para pegar con integridad; prefiera decode cuando ya tenga una cadena tipo dirección Base58Check y deba recuperar la carga solo si la suma está intacta. Mantenga las solicitudes bajo el límite de caracteres publicado; las cargas extremadamente largas se expanden como enteros grandes y conviene dividirlas sin conexión.
Use el Base58 simple hermano cuando solo necesite conversión de alfabeto sin sumas; use esta capacidad Base58Check cuando importe la integridad. Al enseñar, muestre la misma carga codificada con y sin suma para que el alumnado vea por qué las cadenas al estilo Bitcoin son más largas y por qué un error de un solo carácter casi siempre falla de forma cerrada en lugar de abrir el monedero equivocado.
Qué puede hacer con ella
Integridad al copiar y pegar en herramientas de operaciones
Codifique etiquetas binarias versionadas para que el personal pegue cadenas que fallen de forma cerrada ante erratas en lugar de decodificar bytes incorrectos en silencio.
Preguntas frecuentes
¿Cuál es la diferencia entre Base58 y Base58Check?
Base58 solo proyecta bytes al alfabeto Bitcoin. Base58Check añade primero cuatro bytes del doble SHA-256 de la carga y después codifica en Base58 la carga más la suma para que el decode verifique la integridad.
¿Qué alfabeto utiliza esta herramienta Base58Check?
El alfabeto Bitcoin: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Excluye 0, O, I y l.
¿La carga debe ser hex o texto plano?
El format predeterminado es hex (dígitos hexadecimales de longitud par), que coincide con las herramientas Bitcoin. Configure format en utf8 solo cuando la carga sea texto UTF-8 genuino.
¿Es gratuito el codificador Base58Check?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Qué pasa si la suma de verificación no coincide al decodificar?
El decodificador vuelve a calcular la suma doble SHA-256 a partir de los datos y la compara con los cuatro bytes guardados en la cadena. Si no coinciden, se detiene con un aviso claro en lugar de entregarle bytes que probablemente están mal.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/base58-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "00010966776006953D5567439E5E39F86A0D273BEE"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "00010966776006953D5567439E5E39F86A0D273BEE"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"00010966776006953D5567439E5E39F86A0D273BEE"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "00010966776006953D5567439E5E39F86A0D273BEE"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Este codificador Base58Check acepta una carga en hex o UTF-8 y devuelve una cadena Base58Check; el decodificador invierte el mapa, recalcula SHA256(SHA256(payload)) y reporta un error invalid_input claro cuando la suma almacenada no coincide. El recorrido es aritmética determinista pura, sin red, sin semillas aleatorias y sin dependencia del reloj, de modo que el ejecutor gratuito del navegador y la API prepagada devuelven el mismo JSON siempre.
Cómo llamar a la API y qué contiene la respuesta
Con format utf8, text se codifica como bytes UTF-8 antes de calcular la suma. El modo decode trata text como una cadena Base58Check bajo el alfabeto Bitcoin, verifica la suma de doble SHA-256 y devuelve la carga en hex minúsculas si format es hex, o como cadena UTF-8 si format es utf8 (las cargas binarias que no son UTF-8 válido deben usar hex). Envíe un cuerpo JSON con un campo de cadena obligatorio text (alias input, value, data y payload), un mode opcional encode o decode (predeterminado encode) y un format opcional hex o utf8 (predeterminado hex). Se eliminan los espacios en el hex; longitud impar o dígitos no hex devuelven invalid_input. En un encode correcto la respuesta incluye mode, format, input, result y base58check con la misma cadena codificada, payload_hex, checksum_hex, la constante alphabet y alphabet_name bitcoin, payload_bytes, output_length y un breve mensaje en inglés. En un decode correcto también obtiene checksum_valid en true, input_length y un mensaje que confirma la verificación. Una validación fallida (text ausente, hex incorrecto, mode o format desconocidos, caracteres Base58 no válidos, cargas demasiado cortas para la suma o desajuste de suma) devuelve invalid_input y nunca se cobra. El precio es una tarifa plana de $0.002 por solicitud correcta con unidad item.
Consejos prácticos, vectores clásicos y diferencias con Base58 simple
Las pruebas de humo de ida y vuelta son directas: codifique la carga hex conocida 00010966776006953D5567439E5E39F86A0D273BEE, confirme el resultado 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM, decodifique esa cadena y confirme payload_hex y checksum_hex d61967f6. Altere deliberadamente el último carácter de una cadena válida y compruebe que su cliente gestiona invalid_input con un mensaje que nombra las sumas de cuatro bytes recibida y esperada. Las tareas fallidas que devuelven invalid_input no consumen saldo prepagado, lo que mantiene baratos los scripts exploratorios al probar sumas incorrectas.
Casos de integración
Pruebas de fixtures de monedero y direcciones
Construya fixtures de CI a partir de cargas hex conocidas, compruebe que el encode Base58Check coincide con cadenas golden y rechace direcciones alteradas por desajuste de suma.
Enseñanza de sumas de verificación de doble SHA-256
En el aula se codifica un vector clásico de Bitcoin, se inspecciona checksum_hex y se altera un carácter para demostrar invalid_input.
Preguntas técnicas
¿Qué ocurre si la suma de verificación no coincide?
El decode devuelve invalid_input con un mensaje que incluye las sumas de cuatro bytes recibida y esperada en hex. Las tareas fallidas no se cobran.