Ich habe also eine grundlegende Kryptoklasse. Beachten Sie, dass dies eine vereinfachte Implementierung zur Veranschaulichung der Frage ist.
Nun, meiner Meinung nach haben beide Methoden ein zusätzliches Byte-Array und eine String-Instanz.
xmlString
und bytes
in Encrypt
und
decryptedString
und decryptedBytes
in Decrypt
Wie kann ich also die Verwendung von Streams in dieser Klasse überarbeiten, um den Speicherverbrauch zu minimieren?
%Vor%Und hier ist ein Unit Test
%Vor%=== Bearbeiten ===
Basierend auf der Anser von Damien_The_Unbeliever habe ich das versucht. Was den Unit-Test nicht besteht
%Vor% Sie können Ihr XmlWriter
direkt über Ihrem CryptoStream
(pass crypto
bis XmlWriter.Create
) erstellen, anstatt einen separaten Puffer zu verwenden. (Dito für die Entschlüsselung)
Und MemoryStream
hat eine ToArray
-Methode, so dass Sie sie nicht manuell zuordnen, neu positionieren und lesen müssen.
Abgesehen davon sieht es nach einer vernünftigen Implementierung aus - Gibt es spezifische Probleme, die behoben werden müssen?
Basierend auf Ihrer Änderung, wenn ich die Entschlüsselung zu ändern:
%Vor%Dann scheint es für mich zu funktionieren.
Die neue Version enthält eine XML-Stückliste, während die alte nicht. Der XmlReader sollte zurechtkommen, hätte ich gedacht, scheint es aber nicht. Probieren Sie die folgenden Einstellungen in Encrypt
:
Und jetzt funktioniert es mit der alten Funktion Decrypt
.
Verschlüsseln
%Vor%Entschlüsseln
%Vor%Tags und Links .net c# encryption