Casi todos los números de identificación españoles llevan dentro una comprobación: una letra o unos dígitos que se calculan a partir del resto. Sirven para detectar erratas al teclearlos y, de paso, para que un programa sepa si una secuencia de cifras es un DNI o solo un número cualquiera.
Si solo quieres comprobar uno, pégalo en el validador gratuito de DNI, NIE, CIF e IBAN: funciona en tu navegador y no envía nada. Si quieres saber cómo funciona, sigue leyendo.
La letra del DNI
Se divide el número entre 23 y se toma el resto. Ese resto, de 0 a 22, es la posición de la letra en esta serie:
| Resto | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Letra | T | R | W | A | G | M | Y | F | P | D | X | B |
| Resto | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | |
| Letra | N | J | Z | S | Q | V | H | L | C | K | E |
Ejemplo: 12345678 entre 23 da 536.768 y sobran 14. La posición 14 es la Z, así que el DNI completo es 12345678Z. Las letras I, Ñ, O y U no se usan para no confundirlas con otros caracteres.
La letra del NIE
El número de identidad de extranjero empieza por X, Y o Z, sigue con siete cifras y acaba en una letra de control. Para calcularla se cambia la letra inicial por un número (X = 0, Y = 1, Z = 2) y se hace lo mismo que con el DNI.
Ejemplo: X1234567 pasa a 01234567; entre 23 sobran 19, que es la L. El NIE completo es X1234567L.
El carácter de control del CIF
El NIF de una sociedad (el antiguo CIF) tiene una letra que indica el tipo de entidad (A para sociedades anónimas, B para limitadas…), siete cifras y un carácter de control. Se calcula así:
- Suma las cifras en posición par (la segunda, la cuarta y la sexta).
- Multiplica por dos cada cifra en posición impar (primera, tercera, quinta y séptima) y suma las cifras de cada resultado: 7 × 2 = 14 cuenta como 1 + 4 = 5.
- Suma los dos totales y quédate con la última cifra. El control es 10 menos esa cifra (y 0 si sale 10).
Según el tipo de entidad, el control se escribe como número o como letra de la serie JABCDEFGHI (J = 0, A = 1…). Ejemplo: B1234567 da control 4, así que el NIF es B12345674.
Los dígitos de control del IBAN
Un IBAN español tiene 24 caracteres: ES, dos dígitos de control y los 20 dígitos de la cuenta. La comprobación, la misma en toda Europa, es:
- Pasa los cuatro primeros caracteres (ES y los dos dígitos) al final.
- Cambia cada letra por un número: A = 10, B = 11… E = 14, S = 28.
- Divide el número enorme que sale entre 97. Si sobra 1, el IBAN está bien formado.
Dentro de los 20 dígitos de la cuenta hay además otros dos dígitos de control, los del antiguo código de cuenta cliente, que comprueban la entidad, la oficina y el número de cuenta.
Tarjetas y Seguridad Social
- Tarjetas de pago: la última cifra se calcula con el algoritmo de Luhn. Empezando por la derecha, se duplica una cifra de cada dos, a lo que pase de 9 se le restan 9, y la suma total tiene que acabar en 0.
- Número de la Seguridad Social: doce cifras, dos de provincia, ocho de número y dos de control. Las de control son el resto de dividir entre 97 las diez primeras cifras.
Bien formado no es lo mismo que real
Estas comprobaciones dicen si un número puede existir, no si existe ni de quién es. Cualquiera puede inventar un DNI con la letra correcta. Para saber si un IBAN tiene titular o si un DNI corresponde a una persona hay que preguntar a quien los emite.
Por qué importa al anonimizar
Un programa que buscara «ocho cifras y una letra» marcaría como DNI muchas cosas que no lo son: números de pedido, referencias, códigos. Comprobar la letra o el dígito de control reduce mucho los falsos positivos. Por eso AnonimData valida la letra del DNI y del NIE, el control del CIF, el IBAN con su longitud por país, las tarjetas con Luhn y la Seguridad Social con su módulo 97 antes de marcar un dato.
Y funciona también al revés: cuando sustituyes los datos por ficticios, un DNI inventado con su letra correcta y un IBAN que pasa la comprobación hacen que el documento siga funcionando en cualquier programa que los valide. Para quitar estos números de un texto al momento tienes también la herramienta gratuita de anonimizar texto.