Explicación · Con ejemplos resueltos

Cómo funcionan las sumas de comprobación

Los números de tarjeta, los IBAN, los números de identificación fiscal y las direcciones cripto llevan uno o dos dígitos adicionales ocultos, calculados a partir de los demás. Si se escribe mal un carácter, la aritmética ya no coincide; así es como un validador puede señalar un error tipográfico al instante, sin conexión, sin necesidad de consultar a un banco o a una cadena de bloques.

Qué es una suma de comprobación

Una suma de comprobación (o dígito de comprobación) es redundancia intencionada. Cuando se emite un número, uno o más de sus dígitos no se eligen libremente: se calculan a partir del resto mediante una fórmula fija. Cualquiera que conozca la fórmula puede recalcular esos dígitos y compararlos. Si coinciden, el número es internamente coherente. Si no, hubo un error de escritura, de lectura o corrupción.

Eso es todo lo que promete una suma de comprobación. No dice nada sobre si la cuenta existe, quién la posee o qué contiene; un punto que repiten todos los validadores de este sitio, porque ambos conceptos se confunden fácilmente.

Ejemplo resuelto 1: Luhn, el algoritmo para números de tarjeta.

Visa, Mastercard y la mayoría de las demás tarjetas de pago utilizan Luhn. Tomemos el ejemplo clásico 7992 7398 713. Empezando por el dígito más a la derecha, duplica cada segundo dígito; si al duplicar se obtiene un número de dos dígitos, suma sus dígitos. Luego suma todo.

DígitoPosición desde la derecha¿Se duplica?Cuenta como
3Dígito de verificación3
12º desde la derecha1 × 2 = 22
77
88 × 2 = 16 → 1 + 67
99
33 × 2 = 66
77
22 × 2 = 44
99
910º9 × 2 = 18 → 1 + 89
711.º7

La columna de la derecha suma 3 + 2 + 7 + 7 + 9 + 6 + 7 + 4 + 9 + 9 + 7 = 70. Setenta es divisible entre diez, por lo que el número es válido. Si cambias cualquier dígito, la suma dejará de ser múltiplo de diez. Pruébalo en el Validador de Tarjeta de Crédito: realiza este mismo cálculo en tu dispositivo.

Ejemplo práctico 2: una suma ponderada (ISBN-10)

Muchos números de identificación nacional utilizan una suma ponderada: se multiplica cada dígito por un peso fijo, se suman los resultados y se verifica el resto. El ISBN-10 es la ilustración más clara. Para 0-306-40615-2, los pesos van del 10 al 1:

0×10 + 3×9 + 0×8 + 6×7 + 4×6 + 0×5 + 6×4 + 1×3 + 5×2 + 2×1 = 132

132 es exactamente 11 × 12, por lo que el resto al dividir entre 11 es cero y el ISBN es válido. El CPF de Brasil, el PESEL de Polonia y docenas de otros identificadores siguen el mismo patrón con sus propios pesos y módulos; por eso un Validador masivo de ID puede comprobar miles de ellos en un segundo.

Ejemplo práctico 3: IBAN y módulo 97

Los números de cuenta bancaria internacional utilizan ISO 7064 mod 97-10, un esquema más robusto con dos dígitos de verificación. Tomemos el ejemplo estándar GB82 WEST 1234 5698 7654 32:

  1. Verifica la longitud según el país: un IBAN británico tiene 22 caracteres. ✓
  2. Mueve los primeros cuatro caracteres al final: WEST12345698765432GB82.
  3. Reemplaza cada letra por dos dígitos (A = 10 … Z = 35): W→32, E→14, S→28, T→29, G→16, B→11, lo que da como resultado 3214282912345698765432161182.
  4. Divide ese número entre 97. El resto debe ser exactamente 1, y así es.

Dado que 97 es un número primo y mayor que cualquier intercambio de dos dígitos, el módulo 97 detecta todo error de un solo carácter y toda transposición; solo aproximadamente una cadena aleatoria de cada 97 pasaría por casualidad. El Validador de IBAN muestra si cada una de estas etapas se supera o no.

Direcciones criptográficas: las sumas de comprobación se generan a partir de hashes

Las direcciones de Bitcoin y Ethereum elevan el estándar, ya que un error tipográfico enviaría el dinero a nadie para siempre. Las direcciones antiguas de Bitcoin (1…, 3…) utilizan Base58Check: la carga útil de la dirección se procesa mediante SHA-256 dos veces y los primeros cuatro bytes del resultado se añaden como suma de comprobación. Un único carácter incorrecto cambia el hash por completo, por lo que la probabilidad de que un error pase desapercibido es de aproximadamente uno en cuatro mil millones. Las direcciones más recientes bc1… usan Bech32 o Bech32m, un código corrector de errores que garantiza la detección de cualquier error que afecte hasta a cuatro caracteres. El EIP-55 de Ethereum oculta su suma de comprobación en el patrón de letras mayúsculas y minúsculas.

El Validador de direcciones Bitcoin y el Validador de direcciones Ethereum implementan estos algoritmos en el navegador y se verifican contra los vectores de prueba oficiales cada vez que se carga la página.

Resumen de los esquemas

EsquemaUtilizado porDetectaProbabilidad de que un error aleatorio pase desapercibido
Luhn (módulo 10)Tarjetas de crédito y débito, IMEI, muchos documentos de identidad nacionalesCada error de un dígito y la mayoría de los intercambios adyacentesAproximadamente 1 de cada 10
ISO 7064 módulo 97-10IBAN y algunos números fiscales y de empresasCada error individual y cada transposiciónAproximadamente 1 de cada 97
Suma ponderada, módulo 10 u 11ISBN-10, el CPF de Brasil, el PESEL de Polonia y muchos otros documentos de identidadErrores individuales y la mayoría de las transposicionesAproximadamente 1 de cada 10 o 1 de cada 11
Base58Check (doble SHA-256, 4 bytes)Direcciones heredadas de Bitcoin (1…, 3…)Cualquier error tipográfico, con una probabilidad abrumadoraAproximadamente 1 de cada 4 mil millones
Bech32 / Bech32m (código BCH)Direcciones Bitcoin SegWit y Taproot (bc1…)Garantizado: cualquier error afecta hasta 4 caracteres.Menos de 1 entre mil millones.
EIP-55 (codificación keccak-256)Direcciones EthereumErrores tipográficos, debido al patrón de letras mayúsculas y minúsculas.Muy bajo para entradas con mayúsculas y minúsculas.

¿Por qué un validador debe ejecutarse en tu dispositivo?

Todo lo anterior es aritmética sobre dígitos que ya posees. No hay motivo para que un validador envíe un número de tarjeta, un ID fiscal o una dirección de billetera a un servidor; y hay una muy buena razón para no hacerlo. Todos los validadores de este sitio se ejecutan localmente; la lista de herramientas offline los agrupa, y nuestra guía para verificar si una herramienta sube tus datos muestra cómo confirmarlo para cualquier sitio en veinte segundos.

Preguntas frecuentes

¿Una suma de comprobación válida significa que el número es real o está activo?

No. Una suma de comprobación solo demuestra que los dígitos son internamente coherentes; que el número podría existir. No puede indicarte si la cuenta está abierta, quién la posee o cuál es su saldo. Todos los validadores de este sitio lo indican en la página, porque esa distinción es importante.

¿Qué probabilidad hay de que un número incorrecto aún pase la validación?

Depende del esquema. Un único dígito de verificación mod-10 permite que aproximadamente 1 error aleatorio de cada 10 pase; el mod 97 del IBAN permite que cerca de 1 de cada 97 pase; una suma de verificación Base58Check de 4 bytes permite que cerca de 1 de cada 4 mil millones pase. La propiedad importante es que los errores comunes humanos — un dígito incorrecto o dos dígitos intercambiados — son detectados por todos ellos.

¿Por qué algunos identificadores no tienen suma de verificación en absoluto?

Los esquemas más antiguos o simples fueron diseñados para buscarse en un registro en lugar de validarse sin conexión, y algunos sistemas de numeración simplemente preceden a esta práctica. Para ellos, un validador solo puede comprobar la longitud y el formato.

¿Es seguro pegar mi número de tarjeta o de identificación en un validador?

Solo si la validación se ejecuta en tu dispositivo. Una suma de verificación es un cálculo aritmético con los dígitos que ya tienes, por lo que no hay razón legítima para que un validador los envíe a un servidor. Puedes confirmar que una herramienta se ejecuta localmente con la prueba en modo avión descrita en nuestra guía para comprobar si una herramienta sube tus datos.

¿Cuál es la diferencia entre una suma de verificación, un hash y el cifrado?

Una suma de verificación es un dígito corto de comprobación diseñado para detectar errores tipográficos accidentales. Un hash criptográfico es una huella digital larga diseñada para que incluso un cambio deliberado sea detectable y el original no pueda recuperarse. El cifrado transforma los datos para que solo puedan leerse con una clave. Base58Check utiliza un hash para crear su suma de verificación, por lo que es muy difícil engañarlo por accidente.