16 caracteres de 62 possibilidades alfanuméricas por posição. Gerado no seu navegador.
Uma string alfanumérica aleatória seleciona cada caractere independentemente de um conjunto de 62 possibilidades: 26 letras maiúsculas, 26 letras minúsculas e 10 dígitos. Cada posição carrega log2(62) ≈ 5,95 bits de entropia. Uma string de 32 caracteres contém, portanto, aproximadamente 190 bits de aleatoriedade, colocando-a além do alcance de qualquer busca por força bruta. Para contextualizar, 128 bits é o padrão atual para chaves de encriptação simétrica que protegem informações classificadas.
A distinção em relação a passwords é importante. Passwords precisam de caracteres especiais para satisfazer requisitos de complexidade impostos por sistemas de autenticação. Strings aleatórias servem um propósito diferente: unicidade sem caracteres especiais. Strings apenas alfanuméricas funcionam perfeitamente em URLs, nomes de ficheiros, identificadores de bases de dados, tokens de API, parâmetros de consulta e variáveis de ambiente. Sem escape. Sem codificação. Sem casos limite onde um & perdido quebra um parser.
A propriedade de segurança mais relevante para strings aleatórias é a resistência a colisões: quantas strings pode gerar antes de duas coincidirem? A resposta vem do paradoxo do aniversário, um resultado da teoria da probabilidade que recebe o nome do facto surpreendente de que num grupo de apenas 23 pessoas, há 50% de probabilidade de duas partilharem o mesmo aniversário. Para strings aleatórias, o limiar de colisão de 50% ocorre aproximadamente na raiz quadrada do espaço total de possibilidades.
Uma string alfanumérica de 32 caracteres tem 6232 ≈ 2190 valores possíveis. O limite de aniversário é 295 ≈ 4 × 1028 strings. Seria necessário gerar quarenta mil milhões de milhões de milhões de strings antes de atingir 50% de probabilidade de um único duplicado. A um milhão de strings por segundo, isso levaria mais de 1015 anos. Para qualquer aplicação prática, colisões são matematicamente impossíveis durante o tempo de vida do sistema.
O UUID versão 4 (/uuid) produz 122 bits de aleatoriedade num formato hex padronizado 8-4-4-4-12. Uma string alfanumérica de 22 caracteres deste gerador fornece aproximadamente 131 bits de aleatoriedade numa representação mais curta e compacta. Ambos servem o mesmo propósito fundamental: gerar identificadores únicos sem coordenação entre sistemas.
Os compromissos são concretos. UUIDs são universalmente reconhecidos, validados por bibliotecas padrão e ordenados cronologicamente por alguns sistemas de bases de dados (UUIDv7). Strings alfanuméricas aleatórias são mais curtas, mais densas e livres de hífenes. Um UUID ocupa 36 caracteres incluindo hífenes; uma string aleatória com entropia equivalente precisa de apenas 22 caracteres. Escolha UUIDs quando interagir com sistemas que os esperam. Escolha strings aleatórias quando controlar ambas as pontas e quiser máxima densidade de informação.
Strings alfanuméricas aleatórias aparecem em todo o desenvolvimento de software. Tokens de API autenticam serviços sem passwords. Identificadores de sessão rastreiam ligações de navegadores. Valores nonce previnem ataques de repetição em fluxos OAuth. Nomes de ficheiros temporários evitam conflitos no processamento paralelo. Dados de teste preenchem bases de dados com identificadores de aparência realista. Slugs de encurtadores de URL comprimem endereços longos em links partilháveis. Cada caso de uso beneficia da mesma propriedade: imprevisibilidade criptográfica sem caracteres especiais.
A geração de strings aleatórias ensina combinatória através de aplicação imediata. Peça aos alunos para calcular o total de strings possíveis para diferentes comprimentos: 628 ≈ 2 × 1014 versus 6216 ≈ 5 × 1028. Duplicar o comprimento eleva ao quadrado o espaço de possibilidades. Depois introduza o paradoxo do aniversário: visite /generate/8 e discuta em que escala colisões se tornam prováveis para strings curtas versus /generate/32 onde colisões são efetivamente impossíveis. O painel de colisões mostra o limite de aniversário em tempo real, tornando a combinatória abstrata tangível.
Cada string gerada nesta página existe apenas dentro do seu navegador. O servidor entrega a ferramenta. O seu dispositivo cria o resultado usando crypto.getRandomValues(), a mesma API Web Cryptography que protege a banca online. A string permanece na memória do navegador até que a copie. Fechar o separador destrói-a. O servidor tem zero conhecimento de qualquer string que esta página tenha alguma vez produzido.
Escreva qualquer comprimento diretamente na barra de endereço:
Envie a ferramenta ou desafie um amigo a comparar a string aleatória dele com a sua.
Inspiração Diária
Trabalhos selecionados pelo júri do A' Design Award, apresentados frescos a cada manhã.