Wenn die Datei Unicode / ansi / etc ist, können Sie einen Algorithmus erstellen, um so etwas wie das erste 200-Zeichen einer Datei zu analysieren und festzustellen, ob mehr lateinische Zeichen als andere Zeichen vorhanden sind.
Ich erinnere mich Ich war ziemlich verärgert, als ich den XOR-Brute-Force-Angriff auf eine einfache Euler-Projektübung versuchte, aber es war einfach und ich musste nur nach gebräuchlichen englischen Wörtern suchen.
Ich habe irgendwo gelesen, dass in Verschlüsselungssoftware, Die Implementierung ist sehr wichtig, manchmal wichtiger als die Alorithmen. Wenn ich das lese, frage ich mich immer noch, ob es sich um offensichtliche Themen wie Pseudozufallsgeneratoren handelt oder eher um weniger offensichtliche Details wie das Ausblenden des Formats der zu verschlüsselnden Datei.
Zum Beispiel, wenn Sie verschlüsseln Wenn es sich bei einer Datei um eine PNG- oder GIF-Datei handelt, entfernen Sie unbedingt die magische Zahl / Zeichenfolge, die in diesen Dateiformaten enthalten ist. Wenn es sich um eine Textdatei handelt, verwenden Sie keine ASCII-Tabelle. Verwenden Sie beispielsweise eine eigene Zeichentabelle Setzen Sie einfach das gesamte lateinische Zeichen auf 0, die Zahlen auf 245-255 und so weiter. Sie könnten auch Permutation oder rot13 oder sonst.
Algorithmen wie AES oder Blowfish / TwoFish sind "mathematisch" sicher, da nachgewiesen wurde, dass keine Angriffe ANDERER ALS BRUTEFORCE als effizient genug getestet wurden: Sie Sie können den Text nur entschlüsseln, indem Sie den tatsächlichen Schlüssel finden.
Diese Algorithmen sind jedoch nur theoretisch effizient. Sie MÜSSEN sie unter Berücksichtigung anderer Übungsfaktoren wie Dateigröße, Komprimierungsverwendung, Textcodierung usw. implementieren.
Beachten Sie beispielsweise, dass es einfach dumm wäre, den Dateinamen im Klartext neben Ihrer verschlüsselten Datei zu speichern.