O Gerador de DNI/NIE cria números de identidade espanhóis — Documento Nacional de Identidad (para residentes) ou Número de Identidad de Extranjero (para estrangeiros) — com a letra de controle final calculada corretamente.
O que é
O DNI tem 8 dígitos seguidos de uma letra; o NIE começa com X, Y ou Z, seguido de 7 dígitos e outra letra. Em ambos os casos, a letra final não é aleatória: ela vem do resto da divisão do número por 23, aplicado sobre a string fixa TRWAGMYFPDXBNJZSQVHLCKE (23 letras, escolhidas para evitar confusão visual com vogais e caracteres parecidos). No NIE, a letra inicial (X, Y ou Z) é convertida em 0, 1 ou 2 antes do cálculo.
Esta ferramenta gera documentos que passam nessa validação, mas são fictícios — não pertencem a ninguém e não são consultados em nenhuma base da Dirección General de la Policía. Útil para:
- Testar formulários de cadastro que aceitam DNI e NIE.
- Gerar em lote, com download em .txt.
- Validar um documento existente na mesma página.
Como usar
Escolha a quantidade e clique em Generar DNI/NIE — a ferramenta sorteia aleatoriamente entre os dois formatos. Copie ou baixe o resultado. Para conferir um documento existente, use a aba Validador.
Como calculamos a letra de controle
Para o DNI, divide-se o número de 8 dígitos por 23 e usa-se o resto como índice na tabela de 23 letras. Para o NIE, a letra inicial vale 0 (X), 1 (Y) ou 2 (Z); esse valor é multiplicado por 10 milhões e somado aos 7 dígitos restantes antes de aplicar a mesma divisão por 23. É um algoritmo bem mais simples que o do RFC mexicano ou do CPF brasileiro — só uma tabela e uma divisão.
Exemplo prático
Para o DNI 12345678, divida o número por 23: o resto aponta um índice na tabela TRWAGMYFPDXBNJZSQVHLCKE, e a letra correspondente é a letra de controle correta. Para um NIE começando com X, some 0 aos 7 dígitos seguintes antes de fazer a mesma divisão (Y soma 10 milhões, Z soma 20 milhões). O resultado é sempre uma letra dentre as 23 possíveis — nunca vogais como A, E, I, O, U, justamente para evitar confusão visual com outros caracteres do documento.