En este escenario, existen varios programas que pueden abrir y leer un archivo binario, pero mi programa debe ser el árbitro final para crear y escribir en estos archivos.
En este programa que estoy escribiendo, me gustaría detectar si el archivo ha sido manipulado fuera del control de mi programa. Es importante que los otros programas puedan seguir leyendo el archivo, pero mi programa puede negarse a abrirlo porque se editó fuera de mi programa.
Mi solución es distribuir los archivos con una lista de sumas de comprobación. Si la suma de comprobación correspondiente de la lista de suma de comprobación no coincide con el archivo adjunto, o la lista no existe, se rechazará ese archivo.
Mi solución sería calcular el hash usando el siguiente método:
sha256(HIDDEN_SALT + FILE_CONTENTS)
El HIDDEN_SALT
es la propiedad clave que garantiza que las fuentes externas no puedan falsificar el hash.
En esta situación, como la sal se aplica a varios archivos (1000+), ¿sería fácil de descifrar trabajando hacia atrás desde la (s) suma (s) de verificación a la que se aplicó? (Considere que tienen tanto la suma de comprobación como el archivo). ¿Habría una mejor solución para este problema?