Nachdem ich seit kurzem (gestern
)
DEC benutze, gibt es ein Verschlüsselungs und Enschlüsselungsproblem. Einmal mit
DEC En/DeCoded ergibt leider nicht die Ausgangsdatei.
Hier meine Vorgehensweise:
Zuerst erstelle ich eine TStringList (ohne ""):
Zitat:
""
"<Anzahl Daten>"
""
"<Daten (1) Name>"
"<Daten (1) Info1>"
"<Daten (1) Info2>"
""
"<Daten (2) Name>"
"<Daten (2) Info1>"
"<Daten (2) Info2>"
...
Und die Verschlüssel und speichere ich nun:
Delphi-Quellcode:
fileCatalog{<== Die StringList}.Text := EnCode(frmPassword.Password, fileCatalog.Text);
fileCatalog.SaveToFile(sdSave.FileName);
Delphi-Quellcode:
function TfrmManager.EnCode(key, text: string): string;
begin
with TCipher_Rijndael.Create do
try
Mode := cmCBCx;
Init(THash_SHA1.KDFx(key, RandomBinary(16), Context.KeySize));
Result := EncodeBinary(text);
finally
Free;
end;
end;
Wenn ich die Dann lade:
fileCatalog.Text := DeCode(frmPassword.Password, fileCatalog.Text);
Delphi-Quellcode:
function TfrmManager.DeCode(key, text: string): string;
var
Salt : Binary;
begin
Salt := RandomBinary(16);
with TCipher_Rijndael.Create do
try
Mode := cmCBCx;
Init(thash_sHA1.KDFx(key, Salt, Context.KeySize));
Result := DecodeBinary(text);
finally
Free;
end;
end;
Dann kommt nicht das Entprodukt raus.
Ich kann außerdem ausschließen, dass die Datei (unverschlüsselt) fehlerhaft ist.
Also ist sie innerhalb des DeCode/Encode-Blocks.
Vor dem Verschlüsseln:
Zitat:
""
"2"
""
"a"
"b"
""
""
"1"
"2"
""
Nach dem Entschlüsseln
Zitat:
F5ñ“;¢’‚‚ôÌ‘GŽ˜ß Y]D&¢(âð¤
[edit]Es lag am "Salz", aber wie kann man es sonst benutzen?[/edit]
[edit]Öhm, aber jetzt ist etwas in der letzten "Zeile" kaputt ...[/edit]