Herramientas para desarrolladores

Los pequeños trámites que interrumpen una tarde: un JWT que hay que leer, un payload que tiene que volverse legible, una cadena que debe sobrevivir a una query. Cada herramienta de aquí calcula en la propia página en la que estás — y de eso se trata, porque lo que un desarrollador pega en formularios así suele ser justo lo que nunca debió salir de su equipo.

19 herramientas

  • Formatear JSONA alguien le ha llegado un muro de JSON en una sola línea — una respuesta de API, un campo de registro, un blob de configuración — y necesita ver la estructura antes de poder hacer nada con ella.
  • Decodificar Base64Alguien tiene delante una cadena con pinta de galimatías y necesita saber qué dice — un JWT, un valor de un secreto de Kubernetes, una línea de registro — sin dársela a un desconocido.
  • Convertir timestamp UnixAlguien ve un número de diez o trece cifras en un registro, en una columna de base de datos o en un payload JSON y necesita saber qué momento designa, y en qué zona.
  • Validar JSONAlgo le rechaza el JSON a alguien sin decirle por qué, y necesita la línea y la columna del primer sitio donde se atasca.
  • Codificar en Base64Alguien necesita meter una cadena donde tal cual no se la aceptan: una data URI, una cabecera de Basic Auth, un campo JSON que tiene que sobrevivir a un transporte con opiniones propias sobre qué bytes valen.
  • Generar hash SHA-256Alguien necesita el SHA-256 de un texto — un valor de integridad, una huella para comparar, un identificador determinista — y quiere la respuesta actual y no rota.
  • Codificar URLAlguien está montando una URL a mano — un parámetro con espacios o ampersands, un destino de redirección que tiene que sobrevivir como valor dentro de otra dirección — y necesita saber qué caracteres hay que escapar y cuáles no.
  • Generador de UUIDAlguien necesita uno o varios identificadores ahora mismo — para un juego de datos de prueba, una migración, un fichero de configuración — y no quiere abrir un terminal para eso.
  • Generar hash MD5Alguien necesita el MD5 de un texto — para cotejarlo con un valor de una base de datos, para reconstruir una clave de caché, o para una interfaz antigua que todavía lo usa.
  • Decodificar URLAlguien lee una URL sacada de un registro, de una exportación de analítica o de un mensaje de error, y la parte interesante está enterrada bajo secuencias de porcentaje.
  • Codificar entidades HTMLAlguien mete en una página texto que no ha escrito él — un comentario, una descripción de producto, un ejemplo de marcado — y necesita que los caracteres que se convertirían en etiquetas sigan siendo caracteres.
  • Decodificar entidades HTMLAlguien tiene delante texto donde en lugar de los caracteres están sus formas de escape — de un campo de base de datos, de un feed RSS, de una exportación de un scraper — y quiere leer lo que pone en realidad.
  • Minificar JSONAlguien quiere dejar JSON formateado en una sola línea, porque tiene que caber en una variable de configuración, en un campo de base de datos o pasar por un canal donde cada byte cuenta.
  • Generar hash SHA-1Alguien tiene que generar un SHA-1 porque otra cosa se lo exige — un objeto de Git, un esquema de firma antiguo, una interfaz anterior a 2017 — y no porque lo haya elegido.
  • Analizar URLAlguien tiene una dirección larga delante y necesita ver sus partes por separado — host, puerto, ruta, query, fragmento — en vez de contarlas de cabeza.
  • Codificar en hexadecimalAlguien necesita ver los bytes que hay detrás de un texto — para un protocolo, para comparar un volcado, para un campo que espera hexadecimal — y con los separadores que su herramienta lee.
  • Decodificar hexadecimalAlguien tiene un volcado hexadecimal de un registro, de una captura de red o de un mensaje de error y quiere saber qué texto hay detrás.
  • Analizar query stringAlguien tiene un query string lleno de parámetros de seguimiento y quiere una línea por parámetro, con los valores decodificados y sin que desaparezcan las claves repetidas.
  • Validar UUIDAlguien tiene delante un identificador y necesita saber si es un UUID bien formado, y qué versión y variante declara.

Por qué «funciona en local» no es aquí una cuestión de gusto

Lo que la gente pega en un decodificador de Base64, por orden de frecuencia: un JWT, una cabecera de Basic Auth, el payload de un webhook, un fichero de configuración. Tres de cada cuatro son credenciales o las contienen. Una página que decodifique eso en un servidor ya las ha visto, y las tiene en sus registros de peticiones, quisiera alguien o no.

No es una objeción teórica. Es la razón por la que este género entero de web está bloqueado en el proxy de muchas empresas, y por la que allí donde no lo está suele existir una política que nadie lee. Todo lo que hay en esta página es aritmética que un navegador sabe hacer solo; llevarla a otro sitio es una decisión, y es la equivocada.

Qué se queda exactamente en el navegador, y qué no

La página es HTML estático servido desde una CDN. Al primer tecleo se carga un módulo pequeño de JavaScript, una vez y luego desde la caché, y el trabajo ocurre en tu pestaña. Ninguna petición lleva lo que has escrito, y eso se comprueba en el panel de red en lugar de creérnoslo.

Dos límites honestos. La página en sí es una petición, así que el hecho de que hayas estado aquí sí es visible para nosotros y para tu red. Y la web lleva publicidad y, si aceptas, analítica: ninguna de las dos ve el contenido de un campo de texto, pero ambas son peticiones a terceros. La diferencia es la que hay entre lo que escribes y el hecho de que estés aquí: lo primero no se mueve nunca, lo segundo necesariamente sí.

Qué significa esto para el RGPD

Si los datos no salen del dispositivo, no hay comunicación a nosotros y, por tanto, tampoco encargo de tratamiento sobre lo que pegas. Ese es el punto decisivo en la práctica cuando en el campo hay un registro de cliente, un mensaje de soporte o un payload con datos personales, y es la razón por la que estas herramientas se pueden usar donde una versión con servidor no se podría.

Lo que sí ocurre está en la política de privacidad y aquí no se maquilla: la visita, las peticiones de publicidad y analítica, el consentimiento. Que una herramienta calcule en local no vuelve neutra a la web entera — solo quita la parte que más pesa.

Una pregunta por página, en vez de una página con desplegable

Una sola página que resolviera Base64, URL y HTML en ambos sentidos detrás de un selector sería menos páginas y peor. Codificar y decodificar fallan de maneras distintas, se explican distinto y se buscan distinto: quien tiene delante una secuencia de porcentaje rota y quien está montando una query no tienen casi nada que decirse.

Así que cada sentido tiene su página, con los errores que le pertenecen: qué hacer cuando el Base64 se deshace en bytes que no son texto, por qué `encodeURIComponent` deja pasar el signo de exclamación y qué le hace eso a una firma de OAuth. De ahí sale una página que merece leerse, y solo es posible porque no atiende a seis públicos a la vez.

Funcionan sin conexión

Una vez cargada la página de una herramienta, todo pasa en local: funciona en el tren, en un avión y detrás de un proxy corporativo que bloquee el dominio una hora después. No hay ningún service worker instalado ni nada que configurar; una página que nunca llama hacia fuera sencillamente no tiene nada que perder cuando la conexión sí.

En la práctica significa que estas herramientas sirven justo en las situaciones en las que una herramienta online sería la elección equivocada: en un equipo ajeno, en una red en la que no confías, con datos que en realidad no deberías mover. Para ese caso están hechas.

Sin cuenta, sin límite, sin marca de agua

No hay nada que registrar porque no hay nada que administrar. Las herramientas no guardan nada entre dos visitas: cerrar la pestaña borra lo que escribiste, porque no existió en ningún otro sitio más que en esa pestaña.

Tampoco hay límite de cantidad, y no por generosidad: no pagamos nada por tu tiempo de cálculo, así que no hay nada que racionar. El único techo es cuánto texto quiera sostener tu propio navegador en un campo.

Por qué los tecnicismos siguen en inglés

En estas páginas pone payload, token, hash, query string y Base64 — no carga útil, ficha, resumen ni cadena de consulta. No es comodidad: es el idioma en el que se habla de estas cosas en los equipos españoles y en el que se busca.

Donde la palabra habitual es la española, se usa: suma de verificación, marca de tiempo, carácter, tilde. La regla no es «el máximo de español posible», sino «la palabra que se dice en la conversación»; cualquier otra cosa da una página correctamente traducida que no encuentra nadie.

Qué falta aquí a propósito

No hay formateador de HTML, CSS ni JavaScript, y es una decisión, no un hueco. Uno correcto necesita un analizador de verdad; las bibliotecas que se usan para eso pesan varios megabytes y serían una decisión propia de licencia y de tiempo de carga, y una casera destroza entradas en silencio. El formateador de JSON solo es inofensivo porque ese analizador viene incluido en el navegador.

Falta también una previsualización de Markdown o de HTML. Ambas significarían renderizar HTML ajeno dentro de esta página, que es exactamente lo que la página de decodificar entidades HTML rechaza con argumentos, porque un analizador así puede provocar peticiones de red. Un argumento que vale en una página no se puede ignorar en la siguiente.

Herramientas para desarrolladores: preguntas frecuentes

¿Se envía a un servidor lo que pego?

No. Cada herramienta de esta sección calcula en la propia página, y el panel de red es la manera de comprobarlo en vez de creerlo. La página viene de una CDN y la web lleva publicidad, así que hay peticiones: ninguna lleva el contenido de un campo de texto.

¿Hay un límite de cuánto texto puedo pegar?

Solo lo que aguante tu propia máquina. Nada se pone en cola, se cuenta ni se limita, porque no hay servidor haciendo el trabajo que pudiera contar algo. Las entradas muy grandes hacen que la pestaña se lo piense un momento: ese es el único techo.

¿Necesito una cuenta?

No, y tampoco hay nada a lo que registrarse. Las herramientas no recuerdan nada entre dos visitas: cerrar la pestaña borra lo que escribiste, porque no existió en ningún otro sitio.

¿Puedo usarlo con datos de mi empresa?

Eso lo decide vuestra política, pero la respuesta técnica es que los datos no salen del equipo, que es justo de lo que suelen tratar esas políticas. Si necesitas demostrarlo en vez de afirmarlo, abre el panel de red mientras la usas: no hay nada que enseñar.

¿Por qué no hay un paso de descarga antes del resultado?

Porque no hay archivo. El resultado es texto en la página, listo para seleccionar y copiar, y no se ganaría nada haciéndote pulsar un botón antes. Donde una herramienta sí genera un archivo, la descarga está al final y no como barrera previa.