Hallo nochmal,
vielen vielen Dank für deine hilfreiche Antwort.
Ich habe mir das geschriebene zu Herzen genommen und arbeite nun komplett ohne visuelle Komponenten. Alles wird in AnsiStrings verarbeitet und dann direkt in die Textdatei geschrieben.
Die Überprüfung ob Eingabewert und Verschlüsselung übereinstimmen habe ich ebenfalls eingebaut. Ergebnis: Übereinstimmung
Demnach muss das Verschlüsseln an sich jetzt korrekt sein.
Das Problem liegt möglicherweise im Speichern (und späteren Laden) in normale Textdateien. Wenn ich die Datei lade entschlüsselt er nicht richtig sondern nur einen Teil. Schaue ich mir die Verschlüsselung in der Textdatei an sind da neben nicht darstellbaren Sonderzeichen auch Leerzeichen.
Prozedur zum verschlüsseln & testen:
Code:
procedure TCry.btmakeClick(Sender: TObject);
var vergleich,fertig,textzeile: ansistring;
var R: TRCxContext; Datei: TextFile;
begin
Trim(textzeile);
try
RCxInit(R, 'k9N7ZgV7aX');
fertig:=(RCxdecode(R, textzeile));
finally
RCxDone(R);
end;
AssignFile(Datei, 'sec.ini');
Rewrite(Datei);
if IOResult = 0 then
begin
writeln(Datei,fertig);
closeFile(Datei);
end;
// nur zum pruefen
try
RCxInit(R, 'k9N7ZgV7aX');
vergleich:=(RCxencode(R, fertig));
finally
RCxDone(R);
end;
if vergleich = textzeile then showmessage('Identisch');
end;
Meine Prozedur zum Öffnen und Entschlüsseln:
Code:
procedure TForm1.laden;
var ergebnis,geladen:AnsiString; R: TRCxContext; Datei: TextFile;
begin
AssignFile(Datei, 'sec.ini');
Reset(Datei);
ReadLn(Datei,geladen);
CloseFile(Datei);
try
RCxInit(R, 'k9N7ZgV7aX');
ergebnis:=RCxencode(R,geladen);
finally
RCxDone(R);
end;
AssignFile(Datei, 'sec2.ini');
ReWrite(Datei);
WriteLn(Datei,ergebnis);
CloseFile(Datei);
end;
Findet dort jemand einen Fehler oder hat sonst eine Idee woran es liegen könnte? Da die Übereinstimmungsprüfung positiv ausfällt kann es ja "nur" am falschen Speichern oder Laden liegen?
Für die Hilfe welche mir bisher zu Gute gekommen ist nochmal herzlichen Dank an alle Beteiligten
Vielen Dank natürlich auch für weitere Hilfe!
Gruß
Joachim