Quindi in questo scenario ci sono diversi programmi che possono aprire e leggere un file binario, ma il mio programma deve essere l'arbitro finale nella creazione e scrittura di questi file.
In questo programma che sto scrivendo, vorrei rilevare se il file è stato manomesso al di fuori del controllo del mio programma. È importante che gli altri programmi possano ancora leggere il file, ma che il mio programma possa rifiutarsi di aprirlo per motivi di modifica del mio programma.
La mia soluzione è di distribuire i file con una lista di checksum. Se il checksum corrispondente dall'elenco di checksum non corrisponde al file di accompagnamento, o l'elenco non esiste, allora quel file viene rifiutato.
La mia soluzione sarebbe di calcolare l'hash usando il seguente metodo:
sha256(HIDDEN_SALT + FILE_CONTENTS)
La HIDDEN_SALT
è la proprietà chiave che garantisce che le fonti esterne non possano spoofare l'hash.
In questa situazione, dato che il sale è applicato a più file (1000+), sarebbe facile decifrare lavorando all'indietro rispetto ai checksum a cui era applicato? (Considera che hanno sia il checksum che il file.) Ci sarebbe una soluzione migliore a questo problema?