¿Cómo funciona realmente un código QR? La tecnología que hay detrás del mosaico de píxeles

29.08.2026 11 min Tiempo de lectura
¿Cómo funciona realmente un código QR? La tecnología que hay detrás del mosaico de píxeles

Basta con un breve movimiento de la cámara del móvil para que se abra una página web, se conecte a la red wifi o se guarde una vCard en la agenda. Lo que en el día a día parece magia es, en realidad, una combinación muy bien pensada de informática, matemáticas y óptica.

Pero, ¿cómo surge, en realidad, este característico patrón en blanco y negro a partir de una larga dirección de Internet o de un texto? ¿Dónde se ocultan los datos en el código y por qué la cámara reconoce el contenido incluso cuando el código QR está torcido o ligeramente dañado?

En este artículo analizamos paso a paso el funcionamiento del código de respuesta rápida (código QR).

1. El principio básico es sencillo: Los caracteres se convierten en ceros y unos.

Los ordenadores hablan en lenguaje binario, es decir, solo entienden el 0 y el 1. Por lo tanto, antes de que una información pueda representarse como un patrón en el código QR, debe convertirse primero en bits. Para ahorrar espacio de almacenamiento, el software de códigos QR utiliza diferentes modos de codificación:

  1. Modo numérico: para números puros (0-9). Muy eficiente, ya que cada tres dígitos se agrupan en diez bits.
  2. Modo alfanumérico: para dígitos, mayúsculas y caracteres especiales seleccionados.
  3. Modo byte: para textos generales, minúsculas, diéresis (UTF-8) y URL.
  4. Modo kanji: compresión especial para caracteres japoneses.

Una mirada entre bastidores muestra cómo «QR» se convierte en un código binario.

Para comprender cómo funciona un código QR ahorrando espacio, analicemos el modo alfanumérico. En él, cada carácter recibe un valor numérico fijo (A = 10, B = 11, …, Q = 26, R = 27).

Para evitar tener que almacenar cada letra por separado, el algoritmo agrupa siempre dos caracteres.

  1. Se suman los valores de Q (26) y R (27): $26 \times 45 + 27 = 1197$.
  2. El número 1197 se representa como un número binario de 11 bits: 10010101101.

De este modo, las dos letras QR se convierten exactamente en 11 bits compuestos por ceros y unos. Si al final de una cadena quedara una letra suelta, se codificaría con 6 bits (p. ej., $Q \rightarrow 26 \rightarrow 011010$).

2. El camino del código binario al patrón gráfico final

En cuanto tu texto se traduce a una cadena de ceros y unos, esta pasa por varios pasos técnicos de procesamiento:

[ Tu entrada ] (p. ej., «https://qrown.io»)
[ Análisis de modo y codificación binaria ] (los caracteres se convierten en 0 y 1)
[ Encabezado y metadatos ] (se añaden datos sobre la longitud de los datos y el modo)
[ Cálculo de corrección de errores ] (se generan códigos Reed-Solomon)
[ Colocación en la cuadrícula ] (los bits se distribuyen de abajo a arriba y de derecha a izquierda)
[ Enmascaramiento ] (un filtro matemático evita patrones molestos)
[ Código QR final ] (Negro = 1, Blanco = 0)

Paso A: Datos técnicos adicionales y corrección de errores

La cadena de ceros y unos que contiene tu contenido no se compone solo de eso. Delante de los datos útiles se coloca una cabecera. Esta le indica al escáner: «¡Atención, ahora viene un texto en modo byte con una longitud de 25 caracteres!».

A continuación, un procedimiento matemático, la denominada corrección de errores de Reed-Solomon, calcula bits de seguridad adicionales. Estos garantizan que el código se pueda leer incluso si hasta un 30 % de su superficie está cubierta o dañada (por ejemplo, por un logotipo de empresa situado en el centro).

Paso B: Distribución en la cuadrícula (módulos)

Los cuadrados individuales del código QR se denominan módulos. Por regla general:

  1. 0 = módulo blanco
  2. 1 = módulo negro

Sin embargo, los bits no se escriben simplemente línea a línea, de arriba a la izquierda a abajo a la derecha. La asignación de datos comienza en la esquina inferior derecha y serpentea en estrechas columnas de dos, alternando hacia arriba y hacia abajo a lo largo de la cuadrícula. Al hacerlo, se omiten automáticamente las áreas funcionales reservadas (como las esquinas).

Por eso, en el código QR final nunca puedes señalar un único cuadrado negro y decir: «Esto es la “h” de la dirección web».

Paso C: El truco del enmascaramiento (por qué el 1 no siempre es negro)

Si los bits se dibujaran directamente, podrían aparecer al azar grandes bloques negros, largas franjas blancas o patrones engañosos que confundirían a la cámara.

Por eso, el software superpone un patrón de enmascaramiento sobre la matriz. En total hay ocho máscaras estandarizadas. Mediante una operación matemática XOR, la máscara invierte determinados bits:

  1. El 0 se convierte en 1 (el blanco se vuelve negro)
  2. El 1 se convierte en 0 (el negro se vuelve blanco)

El escáner reconoce, a partir de los bits de control del encabezado, qué máscara se ha utilizado, y revierte este paso en una fracción de segundo durante la lectura.

3. La anatomía de un código QR: ¿qué significan los distintos patrones?

Si se observa un código QR con más detalle, parece un mosaico aleatorio. Sin embargo, en realidad cada elemento está situado estrictamente según la norma ISO. Se puede imaginar su estructura como la anatomía de un rostro. Ciertas características se encuentran siempre en el mismo lugar, para que el smartphone reconozca el código a primera vista.

Un código QR clásico se divide en las siguientes zonas principales:

1. Los tres cuadrados grandes de las esquinas (patrones de reconocimiento de posición o «Finder Patterns»)

  1. Se encuentran en la esquina superior izquierda, en la superior derecha y en la inferior izquierda.
  2. Qué hacen: son lo más llamativo del código QR. Estos tres puntos de referencia indican inmediatamente a la cámara: «¡Atención, aquí hay un código QR!». Indican al software en un instante la posición, el tamaño y el ángulo de inclinación, de modo que la cámara detecta si el smartphone se sostiene en posición recta o inclinada.

2. Las líneas de conexión discontinuas (patrones de sincronización)

  1. Se encuentran en la parte inferior derecha e indican a la cámara dónde está «arriba» y dónde «abajo».
  2. Qué hacen: estas líneas están formadas por módulos alternados de color negro y blanco. Funcionan como una regla para el escáner: a partir de estos puntos, el software calcula el tamaño del sistema de cuadrícula (desde la versión 1, con 21 × 21 casillas, hasta la versión 40, con 177 × 177 casillas).

3. Los pequeños cuadrados interiores (patrones de alineación/Alignment Patterns)

  1. Se encuentran en la zona inferior derecha y, en el caso de códigos complejos, repartidos por todo el patrón.
  2. Qué hacen: Estos cuadrados más pequeños sirven como cruces de mira digitales. Ayudan al escáner a compensar las distorsiones, por ejemplo, cuando el código QR está impreso en una lata de Coca-Cola curvada o cuando el folleto está arrugado.

4. La zona de control (información de formato)

  1. Se encuentran justo junto a los tres cuadrados grandes de las esquinas.
  2. Función: aquí se encuentran las instrucciones técnicas para el escáner. En estos pocos píxeles se almacena dos datos fundamentales: 1. Qué nivel de corrección de errores (L, M, Q o H) se utiliza y qué patrón de enmascaramiento se ha superpuesto a los datos.

5. El marco de protección invisible (zona de silencio/Quiet Zone)

  1. Es el borde completamente blanco y sin imprimir que rodea todo el código QR.
  2. Función: Para que la cámara pueda captar con claridad los bordes exteriores del código, necesita una distancia de seguridad respecto a textos, imágenes o gráficos de fondo. Este borde debe tener un grosor mínimo de cuatro módulos (anchura de píxeles). Si falta la zona de silencio, la cámara suele rechazar el escaneo.

4. ¿Qué ocurre durante el escaneo en tu smartphone?

Cuando enfocas la cámara hacia un código QR, en segundo plano se llevan a cabo los siguientes pasos:

  1. Búsqueda: La cámara escanea la imagen de vídeo en busca de los tres patrones de búsqueda grandes.
  2. Transformación: El software calcula la perspectiva y «corrige» digitalmente una imagen que pueda haberse fotografiado en ángulo.
  3. Desenmascaramiento: El sistema de cuadrícula lee la información de formato, reconoce el patrón de enmascaramiento y elimina la máscara.
  4. Aplicación de la corrección de errores: Los posibles arañazos, desenfoques u objetos que oculten partes de la imagen se reparan matemáticamente.
  5. Decodificación: Los ceros y unos se convierten de nuevo, según las reglas del modo, en texto legible, números o comandos de control.
  6. Ejecutar acción: el smartphone reconoce el tipo de datos (p. ej., https://para una URL, WIFI:para datos de acceso o BEGIN:VCARDpara contactos) y sugiere la aplicación adecuada.

Análisis técnico en profundidad: explicación de las preguntas más importantes

¿Se necesita Internet para escanear un código QR?

No, no es necesario para el proceso de escaneo en sí. La conversión de los píxeles en texto se realiza de forma local en tu smartphone. Si el contenido es texto puro, una vCard o datos de acceso a Wi-Fi, todo funciona completamente sin conexión. Solo cuando el código contiene una dirección de Internet (URL) y quieres abrirla, necesitas una conexión de datos.

¿Está cifrado un código QR?

No. Un código QR simplemente está codificado, pero no cifrado. Cualquier escáner universal de códigos QR puede leer los datos que contiene. Por lo tanto, la información confidencial, como contraseñas, datos bancarios o PIN personales, nunca debe almacenarse sin protección en un código QR estándar.

¿Por qué algunos códigos QR parecen mucho más finos y densos que otros?

Cuantos más datos se almacenen directamente en el código —por ejemplo, un texto largo en comparación con un enlace corto—, más módulos se necesitan. El código pasa entonces a una versión superior (desde la versión 1, con 21 × 21 módulos, hasta la versión 40, con 177 × 177 módulos).

Estáticos frente a dinámicos: por qué los códigos dinámicos siguen siendo más compactos

  1. Códigos QR estáticos: almacenan directamente el destino final (por ejemplo, una URL de 150 caracteres). El patrón se vuelve muy denso y más difícil de escanear.
  2. Códigos QR dinámicos: solo almacenan un enlace de redireccionamiento ultracorto (por ejemplo, qrown.io/12da7). El código sigue siendo visualmente muy sencillo y fácil de escanear, y el destino real se puede cambiar en el servidor en cualquier momento sin necesidad de volver a imprimir el código.

Lista de comprobación para códigos QR que funcionen

Si creas tus propios códigos QR o encargas su diseño, ten en cuenta los siguientes aspectos básicos:

  1. Utiliza enlaces cortos: Utiliza códigos QR dinámicos para mantener baja la densidad de módulos.
  2. Mantén el contraste: elige un patrón oscuro sobre fondo claro (los códigos invertidos pueden causar problemas en algunas cámaras antiguas).
  3. Ten en cuenta la zona de margen: deja al menos 4 módulos de distancia desde el borde hasta textos, bordes de corte o gráficos.
  4. Ajusta la corrección de errores: al integrar logotipos en el código, selecciona como mínimo el nivel Q o H de corrección de errores.

Preguntas frecuentes (FAQ)

¿De cuántos módulos se compone un código QR?

Los códigos QR más pequeños (versión 1) constan de 21 × 21 módulos, es decir, 441 campos. La variante más grande (versión 40) tiene una cuadrícula de 177 × 177 módulos, es decir, 31 329 campos.

¿Puede un código QR contener virus o malware?

Un código QR en sí mismo solo contiene texto y no puede ejecutar directamente código de programa malicioso. Sin embargo, puede redirigirte a una página web de phishing preparada o a una descarga maliciosa. Por eso, ¡comprueba siempre la vista previa del dominio en tu smartphone antes de abrirlo!

¿Qué modo ahorra más espacio en un código QR?

El más eficiente es el modo numérico (solo números), seguido del modo alfanumérico. Por el contrario, el modo de bytes (para URL generales y caracteres especiales) es el que más espacio de almacenamiento ocupa por carácter.

Más artículos