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.

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.