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
- Gerador de strings aleatóriasQualquer comprimento, qualquer conjunto de caracteres, em lote.
- Gerador de letras aleatóriasUma letra ao acaso, ou várias, todas com a mesma chance.
- Gerador de códigos aleatóriosCupons, vales-presente e números de série, em lote.
- UUID Generator (em inglês)Version 4 UUIDs, single or by the hundred.
- Gerador de PINSenhas numéricas que nunca são 1234.
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 de | Use | Exemplo |
|---|---|---|
| Um valor longo que uma máquina vai ler | Strings aleatórias | UNvnWaXPLYZz… |
| Um caractere de cada vez, para ler em voz alta | Letras aleatórias | q |
| Um lote de códigos que um cliente vai resgatar | Códigos aleatórios | A7K9-P2XM-4RTV |
| Um identificador que não pode se repetir em lugar nenhum | UUID (em inglês) | 8f14e45f-ceea-… |
| Dígitos protegidos por um limite de tentativas | PIN | 810938 |
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.