So verwenden Sie CipherOutputStream korrekt zum Verschlüsseln und Entschlüsseln des mit log4j erstellten Protokolls (RollingFileAppender)

9

Ich habe ein Problem beim Verschlüsseln / Entschlüsseln von Protokolldateien, die von rollingFileAppender von log4j generiert wurden. Für die Verschlüsselung habe ich versucht, den RollingFileAppender zu erweitern, nenne ihn einfach EncryptedRollingFileAppender. Ich überschreibe die Methode

%Vor%

und im Grunde verwende ich CipherOutputStream und Base64OutputStream, um alles zu verschlüsseln und zu kodieren, das in den Ausgabestrom geschrieben wird. Hier ist ein Teil des Codes:

%Vor%

Und dann entschlüssele ich die Datei mit diesem Code:

%Vor%

Es hat nur teilweise funktioniert. Einige Texte in der Ergebnisdatei wurden korrekt entschlüsselt, andere nicht. Wenn Sie neugierig sind, das ist es, was ich teilweise verstehe:

%Vor%

Ich habe auch versucht, den Algorithmus zu "DESede" zu ändern, aber es wurde noch teilweise entschlüsselt. Dann habe ich versucht, "CBC / PKCS5Padding" an beiden Enden zu verwenden, aber ich habe eine Ausnahme

%Vor%

Ich gehe davon aus, dass die Verschlüsselung die Eingabe nicht richtig auffüllt, aber ich frage mich, warum ... denn wenn ich die gleichen Verschlüsselungs- und Entschlüsselungsalgorithmen ohne CipherOutputStream verwende, funktionierte das Padding ganz gut. Kann mir jemand helfen, dass das funktioniert? Jede Hilfe wird geschätzt.

PS: Sorry für mein Englisch, es ist nicht meine Muttersprache.

    
ordinarydot 07.07.2011, 09:35
quelle

1 Antwort

3

Sieht gut aus. Setzen Sie das Verschlüsselungsobjekt für jede Nachricht zurück / initialisieren Sie es? Wahrscheinlich möchten Sie das nicht, aber wenn Sie das tun, müssen Sie sich die Struktur der Chiffre-Datei genau überlegen, denn der Decryptor muss wissen, wo die Grenzen der Nachricht liegen.

    
James K Polk 07.07.2011, 11:37
quelle

Tags und Links