Geradores

Ferramentas que produzem identificadores e valores de teste sob demanda. Toda a geração acontece no seu navegador, então nada é transmitido.

Escolha um gerador

Use o gerador de senhas para credenciais, o gerador de UUID para identificadores e o gerador de números aleatórios para sorteios, dados e valores de teste. Os três sorteiam da fonte aleatória criptográfica do navegador com amostragem por rejeição, então todos os resultados são igualmente prováveis.

Use o gerador de dados fictícios para preencher uma tabela ou um arquivo de fixtures, o gerador de QR code para transformar um link ou uma credencial de Wi-Fi em algo escaneável, a ferramenta de expressões cron para conferir quando um agendamento vai realmente disparar, e a roleta quando um grupo precisa ver o sorteio acontecer.

De onde vem a aleatoriedade

Tudo o que é aleatório aqui vem de crypto.getRandomValues, o gerador criptograficamente seguro do navegador, e é encaixado na faixa que você pediu com amostragem por rejeição, e não com um módulo, então nenhum valor da faixa é mais provável que outro. Para uma senha isso é uma propriedade de segurança; para uma rifa é simplesmente justiça.

O gerador que a maioria dos códigos usa primeiro, o Math.random, é outra coisa: rápido, previsível a partir de poucas saídas e explicitamente descartado para uso criptográfico pela especificação da linguagem. Uma ferramenta que o usa para gerar senhas não parece quebrada, e é exatamente esse o problema.

Dados gerados devem ser seguros de usar

Fixtures só são úteis se rodar a suíte não puder alcançar uma pessoa real, então o gerador de dados fictícios tira telefones do bloco reservado para ficção, e-mails e URLs dos domínios de exemplo da RFC 2606, e endereços IP das faixas de documentação que não são roteadas.

Esse é também o argumento contra a alternativa tentadora de copiar dados de produção e limpar os nomes. Remover identificadores não desidentifica um conjunto de dados, e a cópia limpa continua sendo dado de produção morando num lugar com controle de acesso mais fraco. Gerar a partir do schema dá o formato certo sem procedência nenhuma.

Alguns destes geram uma especificação, não um valor

Uma expressão cron e um QR code não são saídas aleatórias; são artefatos que outro sistema vai interpretar depois, e a pergunta útil é se essa interpretação corresponde ao que você quis dizer. É por isso que a ferramenta de cron lista os próximos horários de execução em vez de só analisar os campos, e por que o gerador de QR informa a versão e o nível de correção de erros que escolheu.

Confira os dois com a realidade antes de publicá-los. Leia as datas de execução para aquele caso de dia do mês e dia da semana que pega todo mundo, e escaneie um código impresso com dois ou três celulares diferentes antes de encomendar mil cópias.