Hash
Una función hash convierte datos de entrada de cualquier longitud en una salida de longitud fija (valor hash o digest). La misma entrada siempre produce el mismo hash, pero revertir el proceso es computacionalmente inviable. Incluso un cambio de un solo bit altera dramáticamente la salida.
Basta con cambiar un solo carácter de la entrada para que el hash sea un valor completamente distinto (efecto avalancha). Tomando solo los 16 primeros dígitos de la salida SHA-256, se ve así.
| Entrada | Primeros 16 dígitos de la salida SHA-256 |
|---|---|
| QR code | 2c24d35a117c162d |
| QR Code | 5a779155eadaaa3b |
| QR codes | f24e1b51e717a757 |
Los hashes cumplen múltiples roles alrededor de los códigos QR: en pagos QR, los hashes de datos de transacción combinados con firmas digitales detectan manipulación; la generación de TOTP también depende de funciones hash. Los checksums son conceptualmente similares - el principio de "verificar datos con un valor corto" se aplica desde la estructura interna del código QR hasta la capa de aplicación.
Dónde aparece el hash alrededor de los códigos QR.
| Ámbito | Uso del hash | Finalidad |
|---|---|---|
| Pagos con código QR | El hash de los datos de la transacción se combina con una firma digital | Detectar manipulaciones en la información de pago |
| TOTP (contraseña de un solo uso) | El código se deriva mediante funciones hash | Obtener una contraseña de un solo uso |
| Checksums | Se verifica un valor corto en lugar de los datos completos | Comprobar que los datos son correctos |