Generadores
Herramientas que producen identificadores y valores de prueba a demanda. Toda la generación ocurre en tu navegador, así que nunca se transmite nada.
- Generador de Datos FalsosDefine los campos que necesitas y genera hasta 1.000 filas de datos falsos realistas en JSON, CSV o sentencias INSERT de SQL. Todo se genera en tu navegador, asi que no se sube nada y no se usa ningun dato personal real.
- Generador de UUIDGenera UUID en tu navegador, aleatorios v4 u ordenables por tiempo v7. Elige cuántos necesitas y cópialos uno a uno o todos a la vez.
- Generador de Contraseñas SegurasGenera contraseñas aleatorias fuertes en tu navegador, con la entropía real en bits en lugar de un medidor vago de seguridad. No se transmite ni se almacena nada.
- Generador de Números Aleatorios sin SesgoGenera números aleatorios en cualquier rango, enteros o decimales, con opción de no repetir. Las extracciones vienen de la fuente criptográfica del navegador, no de Math.random.
- Generador de Códigos QRGenera un código QR para una URL, un texto o una red Wi-Fi y descárgalo en PNG o SVG. Todo ocurre en tu navegador, así que no se sube nada y el código nunca caduca.
- Generador y Lector de Expresiones CronEscribe una expresión cron y ve las próximas horas en que se ejecutará de verdad. Cada campo se valida, y las programaciones que nunca pueden dispararse se señalan.
- Ruleta de SorteosPega una lista de nombres o números y gira la ruleta para elegir uno al azar. El ganador se sortea antes de que la ruleta se mueva, así que la animación no influye en el resultado.
Elige un generador
Usa el generador de contraseñas para credenciales, el de UUID para identificadores y el de números aleatorios para sorteos, dados y valores de prueba. Los tres extraen de la fuente aleatoria criptográfica del navegador con muestreo por rechazo, así que todos los resultados son igual de probables.
Usa el generador de datos de prueba para rellenar una tabla o un archivo de fixtures, el generador de códigos QR para convertir un enlace o unas credenciales de wifi en algo escaneable, la herramienta de expresiones cron para comprobar cuándo se ejecutará realmente una programación, y la ruleta cuando un grupo tiene que ver el sorteo en directo.
De dónde viene la aleatoriedad
Todo lo aleatorio de aquí se extrae de crypto.getRandomValues, el generador criptográficamente seguro del navegador, y se ajusta al rango que has pedido con muestreo por rechazo en lugar de un módulo, así que ningún valor del rango es más probable que otro. Para una contraseña eso es una propiedad de seguridad; para una rifa es sencillamente justicia.
El generador al que recurre primero la mayoría del código, Math.random, es otra cosa muy distinta: rápido, predecible a partir de unas pocas salidas y descartado expresamente para uso criptográfico por la especificación del lenguaje. Una herramienta que lo usa para una contraseña no parece rota, y ese es justo el problema.
Los datos generados deben ser seguros de usar
Unos fixtures solo sirven si ejecutar las pruebas no puede alcanzar a una persona real, así que el generador de datos de prueba toma los teléfonos del bloque reservado para la ficción, los correos y las URL de los dominios de ejemplo de la RFC 2606, y las direcciones IP de los rangos de documentación que no se enrutan.
Ese es también el argumento contra la alternativa tentadora de copiar datos de producción y borrar los nombres. Eliminar identificadores no anonimiza un conjunto de datos, y la copia depurada sigue siendo información de producción viviendo en un sitio con controles de acceso más débiles. Generar a partir del esquema da la forma correcta sin ninguna procedencia.
Algunos de estos generan una especificación, no un valor
Una expresión cron y un código QR no son salidas aleatorias; son artefactos que otro sistema interpretará más tarde, y la pregunta útil es si esa interpretación coincide con lo que querías decir. Por eso la herramienta de cron enumera las próximas ejecuciones en lugar de limitarse a analizar los campos, y por eso el generador de QR indica la versión y el nivel de corrección de errores que ha elegido.
Contrástalos con la realidad antes de publicarlos. Lee las fechas de ejecución para ese caso de día del mes y día de la semana con el que tropieza todo el mundo, y escanea un código impreso con dos o tres móviles distintos antes de encargar mil copias.
