4

Aclaracion sobre el NIF

miércoles, 16 de enero de 2008

En un post anterior sobre la letra del NIF se deslizó un pequeño error. Lo que hay que buscar en la tabla de las letras es el resto de dividir tu número de carné de identidad por 23.
La principal pega con la que se encuentra mucha gente es que las calculadoras normales no tienen una operacion que devuelva el resto de una división, la calculadora saca decimales directamente.
La calculadora de Windows, en su versión científica (Clic en Ver/Científica), puede sacarnos del aprieto con la tecla MOD:

  1. Escribimos el DNI
  2. Pulsamos la tecla MOD
  3. Escribimos 23
  4. Hacemos clic en la tecla = (o pulsamos la tecla Intro, del teclado) .
Si no se tiene a mano la calculadora de windows sino una corriente de sobremesa es un poco más complicado pero tambien puede hacerse:
  1. Dividimos el nº de DNI por 23.
  2. Al resultado le restamos la parte que queda a la izquierda de la coma, es decir: el número sin decimales. Debería quedar algo del tipo 0,....
  3. Multiplicamos ese resultado por 23. Ese número es el resto.
De todos modos sigo sin entender la utilidad de una letra que cualquiera, con una calculadora de bolsillo es capaz de calcular en segundos. ¿Que extra de seguridad aporta una letra que se calcula directamente del número?

4 Responses to "Aclaracion sobre el NIF"

Anónimo Says:

En informática se denomina suma de comprovación ("checksum") y es útil para detectar errores accidentales. Si por error escribes un número que no toca, la probabilidad que su letra asociada sea la misma es muy baja (debes alterar 3 números como mínimo para que la letra pueda volver a coincidir).
Así, una persona debería poner el DNI completo (con letra, o sea, el CIF), y el sistema debería detectar si te has equivocado calculando la letra que le debería corresponder según el número introducido y comparándolo con la letra que has puesto.
Aunque no es demasiado robusto, porque si mantienes los números pero alteras su posición, la letra es la misma, pero obviamente el DNI ya no es el correcto (almenos no es el de esa persona).

Para errores intencionados (DNI falseado) no sirve y se deben usar otras medidas de seguridad. Si por el contrario este era el objetivo, esto sólo se puede considerar seguridad por oscuridad, muy mala idea.
A la que se pueda echar el guante a algún código que implemente el algoritmo se les puede aplicar ingeniería inversa y descubrirlo, aunque es tan sencillo que estudiando una secuencia de DNIs se puede deducir (y obtener una lista es MUY fácil).

Otro asunto es ver en base de datos la de DNI erróneos que hay, letras que no corresponden, dígitos que faltan... Cualquier base de datos con más de unas decenas de registros comienza a tener unos errores de espanto, y a la que hay decenas de miles es terrorífico.
Y aunque no se habla demasiado de eso, la integridad, coherencia y corrección de los datos en una base de datos es un problema abierto en informática aplicada, por rígido que sea la interfaz para entrar datos y medidas de control que se pongan.

Te lo dice un ingeniero informático que tiene que lidiar a menudo con estos temas.

Saludos.

Pensador Borroso Says:

Gracias por la aclaración, lo bueno de al blogosfera es que todos los dias aprendes algo nuevo.
Espero verte por aquí de vez en cuando.

Anónimo Says:

Mira por donde ya parece que me enteré yo también de la famosa letrita, la verdad un gusto retomar a mi guía espiritual informático que tiene tan apañados colaboradores. bss para todos

Anónimo Says:

Para sacar el resto de una division en una calculadora normal, primero calculas el cociente, luego le restas la parte entera, y eso lo multiplicas por el divisor