Einzelnen Beitrag anzeigen

Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#1

Entschlüsselungs-Probleme mit DEC

  Alt 4. Mär 2005, 19:46
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?
  Mit Zitat antworten Zitat