Geradores aleatórios

Cinco geradores com a mesma fonte de acaso. O que os diferencia é a forma da resposta e quem vai lê-la.

Todas as 5 ferramentas

Qual você precisa?

Os cinco tiram o acaso da mesma fonte criptográfica do navegador, então nenhum é mais aleatório que outro. A pergunta nunca é “qual é o mais forte”, e sim que cara o resultado precisa ter e quem, ou o quê, vai lê-lo.

Se você precisa deUseExemplo
Um valor longo que uma máquina vai lerStrings aleatóriasUNvnWaXPLYZz…
Um caractere de cada vez, para ler em voz altaLetras aleatóriasq
Um lote de códigos que um cliente vai resgatarCódigos aleatóriosA7K9-P2XM-4RTV
Um identificador que não pode se repetir em lugar nenhumUUID (em inglês)8f14e45f-ceea-…
Dígitos protegidos por um limite de tentativasPIN810938

Por que a forma decide

Uma string aleatória e uma letra aleatória saem da mesma função. A diferença é que a string é copiada como um único valor e a letra é lida em voz alta: por isso uma é uma linha de texto e a outra, uma peça grande que se vê do outro lado de uma sala de aula.

Um código de resgate vai além: alguém o digita à mão a partir de um cartão impresso, então ele é agrupado de quatro em quatro, evita os caracteres que se confundem e pode levar um caractere verificador que detecta um erro de digitação antes da busca.

Os dois que não são bem sobre acaso

Um UUID (em inglês) tem o tamanho certo para que ninguém precise se coordenar: com 122 bits aleatórios, dois sistemas podem gerar identificadores para sempre sem se consultar. O trabalho dele é não se repetir, e não impedir que alguém o adivinhe.

Um PIN fica no outro extremo: curto o bastante para um teclado numérico, e seguro só porque algo conta as tentativas erradas. A página dele mostra as chances com bloqueio após três tentativas em vez de um nível de segurança, porque é isso que de fato decide.

A mesma fonte, cinco interfaces

Todos os valores destas páginas vêm da fonte aleatória criptográfica do navegador. Quatro dos geradores — strings, letras, códigos e PIN — a transformam em caracteres ou dígitos com o mesmo código de amostragem por rejeição, e é isso que impede que as primeiras letras saiam 11% mais vezes que as outras.

Um UUID não precisa desse passo: os bytes aleatórios dele são escritos direto em hexadecimal, e a versão 4 sai diretamente de crypto.randomUUID(), a função do próprio navegador. Math.random() não é usado em lugar nenhum.

Compartilhar esse código faz uma correção chegar aos quatro de uma vez. As interfaces são diferentes porque quem sorteia uma letra para a aula e quem prepara dados de teste querem coisas diferentes da mesma aritmética.

Perguntas frequentes

Qual gerador aleatório devo usar?

Escolha pela forma da resposta. Uma string aleatória é um valor longo que uma máquina lê; uma letra aleatória é um único caractere lido em voz alta; um código aleatório é um lote de códigos curtos que as pessoas digitam; um UUID é um identificador que não pode se repetir em lugar nenhum; um PIN são dígitos para um teclado que limita as tentativas.

Os resultados são realmente aleatórios?

Eles vêm do gerador criptograficamente seguro do navegador — crypto.getRandomValues(), ou crypto.randomUUID() nos UUIDs da versão 4 —, que se alimenta da fonte aleatória segura do sistema operacional. A rigor, é um gerador pseudoaleatório, mas a saída dele não pode ser prevista sem conhecer o seu estado interno. Quando os valores aleatórios viram caracteres ou dígitos, a amostragem por rejeição mantém todos exatamente com a mesma chance.

O mesmo valor pode sair duas vezes?

Em princípio, sim: cada sorteio é independente. A probabilidade depende de quantos valores o formato permite. Com 122 bits aleatórios, um UUID repetido não é um problema prático, enquanto um PIN de 4 dígitos tem só 10.000 possibilidades. O gerador de códigos aleatórios é a exceção dentro de um lote: ele nunca repete um código.

Por que os comprimentos padrão são tão diferentes?

Porque cada valor se defende de uma coisa diferente. Um PIN pode ser curto porque o teclado conta as tentativas erradas. Um código de resgate começa com 12 caracteres para que adivinhar um válido continue sem sentido mesmo com milhares emitidos. Uma string aleatória começa com 32 porque pode acabar virando um segredo atacado offline, onde nada conta as tentativas.

Posso baixar os resultados?

Em três deles. O gerador de strings aleatórias baixa a lista como arquivo de texto, assim como o de UUID, e o de códigos aleatórios a baixa como CSV com o cabeçalho “code”, pronta para importar em lote. Os geradores de PIN e de letras aleatórias copiam para a área de transferência.