Friday, August 28, 2026

Que es SHA-256 en programación ?

 SHA-256 es una función criptográfica de hash de la familia SHA-2 (Secure Hash Algorithm 2), diseñada por la NSA y publicada por el NIST. Toma una entrada de cualquier tamaño (un archivo, un mensaje, etc.) y produce una “huella digital” de longitud fija: 256 bits (64 caracteres hexadecimales).



Características principales

  • Es determinista: el mismo archivo siempre genera el mismo hash.
  • Es unidireccional: a partir del hash es prácticamente imposible reconstruir el archivo original.
  • Es resistente a colisiones: es extremadamente difícil encontrar dos entradas distintas que produzcan el mismo hash.
  • Un cambio mínimo en el archivo (incluso un solo bit) produce un hash completamente diferente (efecto avalancha).

Aplicación en la verificación de integridad de archivos

La forma más común de usarlo es esta:

  1. Se calcula el hash SHA-256 del archivo original (o de una versión de confianza).
  2. Ese valor se publica o se guarda de forma segura (en la web del desarrollador, en un archivo .sha256, en un manifiesto, etc.).
  3. Cuando alguien descarga o recibe el archivo, calcula de nuevo el SHA-256 de la copia que tiene.
  4. Se comparan ambos hashes:
    • Coinciden → el archivo no ha sido modificado ni corrompido.
    • No coinciden → el archivo está alterado, incompleto o corrupto.

Casos de uso típicos

  • Verificación de descargas de software (ISO de sistemas operativos, instaladores, paquetes).
  • Comprobación de integridad en sistemas de archivos o backups.
  • Detección de manipulación en documentos o binarios.
  • Firmas digitales y certificados (junto con otras técnicas).
  • Sistemas de control de versiones y repositorios (Git usa SHA-1 históricamente, pero muchos flujos modernos usan SHA-256).

Ejemplo práctico (Linux / macOS / Windows con PowerShell o herramientas)

Bash
# Calcular el hash de un archivo
sha256sum archivo.zip

# Comparar con un hash conocido
echo "hash_conocido  archivo.zip" | sha256sum -c

En resumen: SHA-256 no cifra el archivo, solo genera una huella digital muy fiable que permite detectar con alta confianza si el contenido ha cambiado.



1. SHA-256 no protege el copyright

SHA-256 solo genera una huella digital del contenido exacto del archivo.

  • Si el archivo PGN no cambia ni un solo carácter → el hash es el mismo.
  • Si modificas cualquier cosa (agregas o quitas un movimiento, un comentario, un tag, un espacio, un salto de línea…) → el SHA-256 cambia completamente.

Por lo tanto:

  • El hash no “protege” al autor.
  • Solo sirve para demostrar que dos archivos son idénticos (o que ya no lo son).
  • Cuando alguien publica una base de datos y pone su SHA-256, es para que la gente verifique que descargó la versión exacta, no para reclamar autoría legal.

2. Metadata en los PGN

Los tags de PGN ([Source], [Annotator], [Event], comentarios, etc.) son editables.
Cualquiera puede borrarlos, cambiarlos o añadir los suyos.
No son una prueba criptográfica ni legal fuerte de quién creó la base de datos. ChatGPT te dijo algo impreciso en ese punto.

3. ¿Qué pasa con el copyright si modificas todos los juegos?

Depende de qué estés modificando:

Qué modificas¿Sale del copyright / derechos del autor original?Explicación
Solo los movimientos de las partidasNormalmente sí (en la mayoría de países)Los movimientos de una partida de ajedrez se consideran hechos y no están protegidos por copyright.
Selección, orden, organización de miles de partidasNo necesariamenteUna compilación/selección original puede tener protección como obra colectiva.
Anotaciones, comentarios, evaluaciones, análisisNoEso sí es expresión original y está protegido.
Metadata, tags, formato especial, encabezadosGeneralmente noEs fácil de cambiar y suele tener poca o ninguna protección fuerte.
Base de datos comercial con licencia restrictivaCuidadoAunque cambies el contenido, si la licencia prohíbe la redistribución o la creación de obras derivadas, puedes seguir teniendo problemas.

Resumen práctico

  • Cambiar el contenido de todos los juegos (añadir/quitar info) sí cambia el SHA-256 y hace que el archivo ya no sea idéntico al original.
  • Eso no borra automáticamente los derechos que el autor original pueda tener sobre la compilación, las anotaciones o la selección.
  • Los movimientos puros de las partidas suelen ser libres de usar.
  • Las bases de datos grandes y cuidadosamente curadas (especialmente las comerciales) a menudo tienen protección como obra colectiva o, en Europa, derechos sui generis de bases de datos.

Recomendación:
Si vas a redistribuir o usar comercialmente una colección modificada, lo más seguro es:

  1. Usar solo partidas cuyo origen sea claramente de dominio público o con licencia permisiva.
  2. Eliminar anotaciones y comentarios ajenos.
  3. Crear tu propia selección y organización.
  4. Si la base original es comercial o tiene licencia restrictiva, revisa los términos o consulta a alguien con conocimientos legales.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.

---------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------