Ich arbeite gerade an einem kleinen Programm um Daten zu verschlüsslen.
Unverschlüsselt sieht das ganze ungefähr so aus:
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
Benutzername,LoginDaten,FreigegebeneOrdnerstrucktu r,Passwort
... etc ...
Zur Zeit benutze ich folgenden Code:
Delphi-Quellcode:
const
DefCipherClass: TCipherClass = TCipher_Rijndael; //mögliche siehe Cipher.pas und Cipher1.pas
CipherMode = cmCBC; // Cipher-Mode: cmCTS, cmCBC, cmCFB, cmOFB, cmECB
procedure TFRM_Main.Button4Click(Sender: TObject);
begin
with DefCipherClass.Create('', nil) do // Verschlüsseln
begin
try
Mode := CipherMode;
InitKey('password',nil);
Edit3.Text := EncodeString(Edit2.text);
finally
Free;
end;
end;
end;
procedure TFRM_Main.Button5Click(Sender: TObject);
begin
with DefCipherClass.Create('', nil) do // Entschlüsseln
begin
try
Mode := CipherMode;
InitKey('password',nil);
Edit4.Text := DecodeString(Edit3.text);
finally
Free;
end;
end;
end;
Ich verschlüssele jede Zeile, die in einer listbox steht einzeln und füge sie danach einer anderen listbox hinzu.
Verschlüsseln und Entschlüsseln funktioniert im Programm so wie es soll.
Nun kommen wir zum Problem:
Ich speichere die verschlüsselte Liste als Datei ab.
Durch die Verschlüsselung enthält diese nun Sonderzeichen.
Beim Laden der Datei, um sie wieder zu entschlüsseln passiert öfter folgendes.
Das Sonderzeichen für Zeilenumbruch macht mir einen Strich durch die Rechnung!
Somit fügt das Programm einen Teil der Zeile in eine zweite Zeile ein.
Somit habe ich mehre Zeilen als zuvor und kann den Text nicht mehr entschlüsseln.
Es fehlt zum einen das Sonderzeichen für den Zeilenumbruch und zum anderen ist die Zeile
nicht mehr komplett in einer.
Mein erste Ansatz ist nun das Sonderzeichen durch ein Doppelzeichen wie ## zu ersetzen.
Anscheiend gibt es mehrere Sonderzeichen, die einen Zeilenumbruch in einer Listbox hervorrufen.
Somit müsste ich alle ersetzen bzw. einen anderen Weg finden, die Zeilen 1:1 wieder einzulesen.
Wenn ich die verschlüsselte Liste im Notepad öffen bleiben die Zeilen wie sie sollen. Sobald ich die Datei in eine Listbox einlese passiert mir die Sache mit den Zeilenumbrüchen.
Kann einer von Euch mir einen Tip geben?