Sto facendo un programma C che usa GTK3 (la migliore documentazione di sempre) e OpenSSL (la peggiore documentazione di sempre) per semplicemente crittografare / decifrare un file usando una password. Le funzioni di crittografia e decrittografia funzionano entrambe, tuttavia se inserisco la password errata nella fase di decodifica, il file diventa corrotto (ovviamente). Quindi ho bisogno di un modo per il decryptor di rilevare se il lavoro ha avuto successo. Ecco le mie soluzioni finora:
-
DOPO la crittografia, anteporre una somma di controllo (sha1 / sha256) dei dati originali al file. Quindi il decryptor può validare il checksum originale e decifrare il checksum dei dati.
-
PRIMA di crittografare, anteporre un valore costante (ad es. "CHECK STRING") al file, e se il decrittore vede che il valore costante è stato decrittografato con successo, può presumere che sia anche l'intero file.
Il checksum non crittografato può essere sottoposto ad analisi incrociata con i dati crittografati al fine di accelerare una forza bruta?
Il valore costante crittografato, il cui valore non crittografato è noto all'attore , rivela all'utente malintenzionato un numero limitato di password in grado di crittografare la costante in questo modo?
Spero che abbia senso, odio essere esoterico.