Hallo,
ich steh hier irgendwie auf dem Schlauch.
Ich hab einen D2006 Legacy Code, der eine ältere DECUtil Version verwendet. Dieser Legacy-Code zum Entschlüsseln eines Passworts soll nach D2010 portiert werden. Da ich die alte DECUtil Version unter D2010 nicht compiliert bekomme, versuche ich DECUtil 5.2 einzusetzen. Im Wesentlichen kommt beim Encode nicht mehr das Richtige raus, d.h. das entschlüsselte Passwort, das ich für eine Datenbankverbindung benötige, stimmt nicht mehr.
Alter Code mit älterer DecUtil Version:
Delphi-Quellcode:
function Decrypt(APassword: String): String;
begin
with TCipher_Blowfish.Create(KEYSTR, nil) do begin
try
Mode := TCipherMode(0);
Result := CodeString(APassword, paDecode, fmtDefault);
finally
Free;
end;
end;
end;
Versuch der Entschlüsselung mit DECUtil 5.2 wie folgt:
Delphi-Quellcode:
const
C_KEYSTR: AnsiString = 'xyz';
CipherMode: TCipherMode = cmCTSx;
TextFormat: TDECFormatClass = TFormat_MIME64;
procedure TForm1.Button1Click(Sender: TObject);
var
b: Byte;
begin
with TCipher_Blowfish.Create do
begin
try
Mode := CipherMode;
Init(C_KEYSTR, SizeOf(C_KEYSTR), b, 0);
ShowMessage(DecodeBinary(Edit1.Text, TextFormat));
finally
Free;
end;
end;
end;
Im zweiten Beispiel steht in Edit1.Text das verschlüsselte Passwort drinnen. Der Wert für KEYSTR und C_KEYSTR ist identisch.
Hat da jemand eine Idee? Danke!