Einzelnen Beitrag anzeigen

tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#1

DECUtil alt auf DECUtil 5.2

  Alt 3. Jan 2012, 22:00
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!
  Mit Zitat antworten Zitat