Sobre esta herramienta
Las claves de cifrado, los secretos de API y los tokens bearer necesitan todos lo mismo en el fondo: una secuencia de bytes que nadie pueda adivinar. `Math.random()` no está diseñado para esto: es un generador pseudoaleatorio rápido y predecible, pensado para animaciones y barajados, no para seguridad. Esta herramienta usa en cambio `crypto.getRandomValues()`, el generador de números aleatorios criptográficamente seguro de la Web Crypto API, por lo que los bytes obtenidos son adecuados como material de clave real: claves AES, secretos HMAC, tokens de sesión o cualquier otra cosa que deba resistir ser adivinada.
Elige una longitud en bits — 128 y 256 son los tamaños habituales de clave AES, 512 y 1024 convienen para secretos HMAC más grandes o tokens de alta entropía — y luego una codificación. Hex es la más universal (dos caracteres por byte, fácil de revisar a simple vista), Base64 es compacta y muy compatible, y Base64URL sustituye los caracteres `+`, `/` y `=` para que el resultado se pueda usar directamente en una URL, nombre de archivo o JWT sin necesidad de escape. La sección de clave de API, más abajo, genera un secreto al estilo Stripe: un prefijo corto, un guion bajo y una cadena aleatoria en Base64URL, el formato que usan muchísimas APIs de SaaS para sus tokens bearer.
Todo ocurre en tu navegador: ninguna clave o token generado aquí se envía a ningún sitio. Esto también significa que nada queda registrado ni es recuperable si sales de la página, así que copia tu clave antes de marcharte.
Preguntas frecuentes
¿Cuántos bits necesito para una clave AES?
AES admite claves de 128, 192 o 256 bits. AES-256 (usando la salida hex o base64 de 256 bits de esta herramienta) es la opción moderna más común y se considera segura mucho más allá de cualquier futuro previsible, incluso frente a ataques teóricos de computación cuántica que solo reducirían aproximadamente a la mitad su fuerza efectiva.
¿Es base64url lo mismo que el base64 normal?
No, son similares pero no idénticas: base64url reemplaza los caracteres `+` y `/` con `-` y `_`, y típicamente omite el relleno `=` final, por lo que la cadena resultante es segura de usar directamente en una URL o nombre de archivo sin escapar; de lo contrario, los caracteres especiales del base64 normal necesitarían codificación porcentual en una URL.