Calcular los dígitos de control del DNI

Muchas leyendas urbanas circulan por ahí acerca del significado de los misteriosos números que lleva el DNI en su reverso; en especial, trae de cabeza a mucha gente el dígito aislado situado a la derecha. Sin embargo, de misterioso no tiene nada. Si acudimos a la página oficial del nuevo DNI electrónico, deja bien claro que el campo situado en la parte trasera es información impresa OCR-B destinada a la lectura mecanizada, y está regulado por la normativa recogida en el documento 9303 de la ICAO. Y como toda información destinada a ser leída por una máquina, se incluyen ciertos dígitos de control detrás de cada uno de los campos para realizar la comprobación de que la lectura ha sido satisfactoria.

Hace cosa de un año, recuerdo que un profesor de criptografía de la universidad nos explicó el sistema que usaban para calcular estos dígitos de control. Olvidé el procedimiento y el documento 9303 donde lo explican, así como el estándar ISO 7501 en el que se convirtió, es de pago. Sin embargo, el otro día di por casualidad con una página donde recogen dicho documento 9303 llamado Machine Readable Travel Documents, Part 1 Volume 1 [PDF], que ha servido para refrescarme la memoria. Así que, aprovechando la circunstancia, paso a detallaros el cálculo de los dígitos de control.

La letra del DNI

Para empezar, explicaré cómo se extrae la letra del DNI, porque también esta letra sirve de control para comprobar que el número es correcto. Esto es más conocido y supongo que a muchos de vosotros al menos os sonará.

Básicamente se divide el número entre 23 y el resto se sustituye por una letra que se determina por inspección mediante la siguiente tabla:

RESTO 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
LETRA T R W A G M Y F P D X B N J Z S Q V H L C K E

Por ejemplo, si el número del DNI es 12345678, dividido entre 23 da de resto 14, luego la letra sería la Z: 12345678Z.

Los dígitos de control

En el DNI electrónico, el reverso tiene esta forma:

IDESPXYZ123456a12345678Z<<<<<<
990101bM111231cESP<<<<<<<<<<<d
URRUTIA<URRUTIA<<ANTXON<<<<<<<

Identifiquemos cada uno de los campos:

  1. {ID}Tipo de documento.
  2. {ESP}Nación.
  3. {XYZ123456}Número de serie del soporte.
  4. {a} Primer dígito de control, correspondiente al campo 3.
  5. {12345678Z}DNI.
  6. {<<<<<<}Relleno.
  7. {990101}Fecha de nacimiento, con el formato año/mes/día.
  8. {b} Segundo dígito de control, correspondiente al campo 7.
  9. {M}Sexo; Masculino o Femenino.
  10. {111231}Fecha de vencimiento, con el formato año/mes/día.
  11. {c} Tercer dígito de control, correspondiente al campo 10.
  12. {ESP}Nacionalidad.
  13. {<<<<<<<<<<<}Relleno.
  14. {d} Cuarto dígito de control, correspondiente a la concatenación de los campos 3, 4, 5, 7, 8, 10 y 11.
  15. {URRUTIA}Primer apellido.
  16. {<}Limitador entre apellidos.
  17. {URRUTIA}Segundo apellido.
  18. {<<}Limitador entre apellidos y nombre.
  19. {ANTXON}Nombre.
  20. {<<<<<<<}Relleno.

Para calcular el dígito de control {a}, se aplica el peso 731 (léase siete tres uno) al campo 3. Si alguno de los carácteres es una letra, se sustituye por su número correspondiente según la siguiente tabla:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

En nuestro caso, X=33, Y=34, Z=35. Decíamos que hay que aplicar el peso 731 de la siguiente manera:

   33    34   35   1   2   3    4    5   6
x   7     3    1   7   3   1    7    3   1
------------------------------------------
        231 + 102 + 35 + 7 + 6 + 3 + 28 + 15 + 6 = 433

Como veis, a cada número se le asigna el peso correspondiente y se multiplica. Después se suman todos los resultados y el dígito de control es la última cifra del total. En este caso, a=3. Para el dígito de control {b}, se repite la operación con el campo 7:

    9    9   0   1   0   1
x   7    3   1   7   3   1
--------------------------
        63 + 27 + 0 + 7 + 0 + 1 = 98

Y obtenemos que b=8. Lo mismo para el dígito {c} con el campo 10:

    1   1   1    2   3   1
x   7   3   1    7   3   1
--------------------------
         7 + 3 + 1 + 14 + 9 + 1 = 35

Obteniendo que c=5. Para terminar, el dígito de control {d} se halla de la misma manera con la concatenación indicada arriba: {3,4,5,7,8,10,11}. Recordad que hay que sustituir las letras por números según la segunda tabla.

   33  34 35 1 2 3  4  5 6  3 1 2  3  4 5  6
x   7   3  1 7 3 1  7  3 1  7 3 1  7  3 1  7
--------------------------------------------
   231+102+35+7+6+3+28+15+6+21+3+2+21+12+5+42+
    7 8  35  9 9 0 1 0 1  8 1 1 1 2  3 1 5
x   3 1   7  3 1 7 3 1 7  3 1 7 3 1  7 3 1
-------------------------------------------
        +21+8+245+27+9+0+3+0+7+24+1+7+3+2+21+3+5 = 925

Por lo tanto, d=5, y el DNI quedaría finalmente así:

IDESPXYZ123456312345678Z<<<<<<
9901018M1112315ESP<<<<<<<<<<<5
URRUTIA<URRUTIA<<ANTXON<<<<<<<

Como apunte final, los que todavía no tengáis el DNI electrónico habréis visto cómo en vuestros DNI antiguos hay un par de cambios: no existe número de serie y el número de DNI va seguido de un dígito de control que se calcula con dicho campo. Lo demás es igual.

18 comentarios sobre “Calcular los dígitos de control del DNI

  1. Te acabas de cargar varias leyendas urbanas, mi más sincera enhorabuena, todos podremos vivir más tranquilos en nuestras conversaciones de bar :D

  2. Yo me aprendí la secuencia de 23 letras de memoria (con los marcadores 5,10,15,20, o sea: maxiseco jejeje) y no veas lo que se farda entre colegas ;)

  3. Entonces no es cierta esa leyenda urbana que indica que el último número corresponde con el número de personas que tiene tus mismos apellidos…

    saludos.

  4. que significa el xyz, no tengo ni idea de lo que significan estas letras, ya que en algunos aparece abr y en otros afm

  5. Esto no se cumple con la tarjeta de residencia o NIE, funciona con todos los digitos excepto el campo 14. comprobarlo.

Comentarios cerrados.