Cómo leer la MRZ de un pasaporte o DNI, línea por línea
Qué significa cada bloque de caracteres, cómo funcionan los dígitos de control y por qué una franja tapada a medias sigue filtrando.
Respuesta corta
AAMMDD y < es el carácter de relleno.- Cada campo de la segunda línea va seguido de un dígito de control, así que tapar un número y dejar su dígito permite comprobar conjeturas.
<no es decoración: es el carácter de relleno y vale cero al calcular un dígito de control.- En una tarjeta de identidad la franja está en el reverso, así que censurar solo el anverso deja intacto todo el registro legible por máquina.
Casi todas las guías — la nuestra incluida — te dicen que tapes la zona de lectura mecánica y ahí lo dejan. Esta la descifra, porque en cuanto ves qué es cada bloque de caracteres resulta evidente por qué tapar casi toda la franja no equivale a taparla.
Todo lo que sigue procede de ICAO Doc 9303, el estándar que sigue cualquier documento de viaje legible por máquina. Es público, y es la razón por la que un lector de un país puede leer un pasaporte emitido en otro.
Dónde está la franja y qué tamaño tiene
Dos formatos cubren casi todo lo que llevas en la cartera:
| Documento | Líneas | Caracteres por línea | Dónde |
|---|---|---|---|
| Pasaporte (TD3) | 2 | 44 | Parte inferior de la página de datos |
| DNI, NIE o cédula (TD1) | 3 | 30 | Reverso de la tarjeta |
La Parte 3 del estándar enuncia la regla sin ambigüedad: los datos legibles por máquina se disponen «en dos líneas (superior e inferior), salvo en los documentos de viaje de tamaño TD1, donde hay tres líneas». Y la Parte 5, que cubre los documentos del tamaño de una tarjeta, es igual de tajante sobre su ubicación: la MRZ está en el reverso del TD1.
Esa frase explica por qué se filtran tantos DNI censurados. La gente fotografía el anverso, tapa el número y nunca da la vuelta a la tarjeta.
- Tapar antes de compartir
- Normalmente se puede dejar visible
Línea 1 — la línea del nombre
En un pasaporte, la primera línea se descompone así:
- Posiciones 1–2 — el código de documento.
Ppara pasaporte, rellenado con<. - Posiciones 3–5 — el Estado u organización emisor, en un código de tres letras.
- Posiciones 6–44 — tu nombre, 39 caracteres para todo.
El nombre no va escrito como lo escribes tú. Primero los apellidos, después dos caracteres de relleno (<<), después los nombres, con un solo < entre cada componente. Lo que sobra se rellena con < hasta la posición 44. Los signos diacríticos se eliminan: el estándar no los permite porque «confundirían a los equipos de lectura mecánica».
Un nombre largo, por tanto, se trunca en lugar de continuar en otra línea — y el estándar precisa que, cuando eso ocurre, el último carácter debe ser una letra, lo que es en sí la señal de que hubo truncamiento.
Línea 2 — la línea de datos
Esta es la que importa. En un pasaporte, cada campo tiene un sitio fijo:
| Posiciones | Qué contiene |
|---|---|
| 1–9 | Número de documento |
| 10 | Dígito de control del número de documento |
| 11–13 | Nacionalidad (código de tres letras) |
| 14–19 | Fecha de nacimiento, en formato AAMMDD |
| 20 | Dígito de control de la fecha de nacimiento |
| 21 | Sexo — F, M o < si no se especifica |
| 22–27 | Fecha de caducidad, en formato AAMMDD |
| 28 | Dígito de control de la fecha de caducidad |
| 29–42 | Número personal u otros datos opcionales |
| 43 | Dígito de control de ese campo opcional |
| 44 | Dígito de control compuesto sobre las posiciones 1–10, 14–20 y 22–43 |
Las fechas son seis dígitos, empezando por el año: el 12 de julio de 1942 es 420712 — el ejemplo del propio estándar. Es decir, año de dos cifras y sin siglo. Esa ambigüedad es problema de la máquina, no tuyo.
Cómo funcionan los dígitos de control
Cinco de los 44 caracteres de esa línea son dígitos de control, y no son un hash ni una firma. El cálculo se puede hacer a mano, y la Parte 3, sección 4.9 lo detalla en cuatro pasos: de izquierda a derecha, multiplica cada carácter por una ponderación que se repite 7, 3, 1; suma los productos; divide entre 10; el resto es el dígito de control.
Dos reglas hacen que funcione también con texto:
- Las letras valen de A = 10 a Z = 35.
- El relleno
<vale cero.
Ese es todo el algoritmo. Existe para que un lector sepa que ha interpretado bien la franja.
Por qué esto cambia cómo censurar
Aquí está la parte que ninguna explicación de la MRZ escrita para desarrolladores se molesta en tratar.
Un dígito de control no contiene el valor que protege. Pero sí permite comprobar una conjetura y descartar gratis nueve de cada diez intentos fallidos. Si tapas el número de documento pero dejas visible su dígito de control en la posición 10, has entregado una forma de puntuar intentos. Si dejas visible la posición 44 — el dígito compuesto, calculado a la vez sobre el número, la fecha de nacimiento y la de caducidad —, has entregado una forma de puntuar intentos contra los tres.
Nada de esto convierte una copia censurada a medias en algo legible al instante. La convierte en algo verificable, que es justo la propiedad que querías eliminar.
Así que la regla sigue siendo la misma, y ahora tiene un motivo detrás: tapa la franja entera, todas las líneas, de borde a borde. No los números dejando asomar los dígitos de control. No dos líneas de tres. Para el resto del documento, consulta cómo censurar un pasaporte o DNI — y recuerda que una caja opaca es mejor que un desenfoque, por motivos que tratamos aparte.
Anonymize my ID tapa la franja completa por ambas caras de la tarjeta, en el propio dispositivo y sin subir la foto a ningún sitio.
Preguntas frecuentes
¿Cuántas líneas y caracteres tiene una MRZ?
Depende del tamaño del documento definido por ICAO Doc 9303. Un pasaporte (TD3) tiene dos líneas de 44 caracteres en la parte inferior de la página de datos. Un documento del tamaño de una tarjeta (TD1) tiene tres líneas de 30 caracteres, impresas en el reverso. La Parte 3 del estándar lo dice sin rodeos: los datos se disponen en dos líneas, salvo en los documentos de tamaño TD1, donde hay tres.
¿Qué significan los caracteres < de la MRZ?
El < es el carácter de relleno. Rellena cualquier campo que no ocupe todas sus posiciones, separa los componentes de tu nombre y marca un campo de sexo sin especificar. Dos seguidos (<<) separan los apellidos de los nombres. No es un error ni una censura — y al calcular un dígito de control, cada < vale cero.
¿Cómo se calcula un dígito de control de la MRZ?
ICAO Doc 9303 Parte 3 lo especifica: se toman los caracteres del campo, se multiplica cada uno por una ponderación que se repite 7, 3, 1, se suman los productos, se divide entre 10 y el resto es el dígito de control. Las letras valen de A=10 a Z=35, y el relleno < cuenta como cero.
¿Por qué importa una MRZ tapada solo en parte?
Porque los dígitos de control se quedan. Un dígito de control no revela el valor que protege, pero sí permite verificar una conjetura y descartar nueve de cada diez intentos erróneos — y el dígito compuesto del final se calcula sobre el número de documento, la fecha de nacimiento y la de caducidad a la vez. Tapa la franja entera, de borde a borde, en todas las líneas.