Hallo!
Erstmal vielen Dank für das Chaos.
Ja, der Parameter aPasswort ist das verschlüsselte Passwort aus der Registratur, KEY der Schlüssel zum ver/entschlüsseln. Ein salt oder weitere Sicherheitsmassnahmen waren in diesem Fall überkandiedelt. Die Passwörter standen vorher im Klartext in der Registratur. Die Rechner stehen gegen unbeaufsichtigten physischen Zugriff geschützt, und auch nur einge Administratoren haben übers Netzwerk Zugriff auf den Rechner, zumal auch die Berechtigungen für jeden hier in der Registratur gespeicherten Benutzer auf der Datenbank auf die tatsächlichen Aktionen des jeweiligen
DCOM-Servers beschränkt sind.
Ob der Hash in
DEC 3.0 angewendet wird, kann ich nicht sagen. Ich denke allerdings schon.
Denn in TCipherManager.InitKey wird jedenfalls die HashClass aus dem zugewiesenen HashManager zugewiesen und in TCipher.InitKey wird dann
Delphi-Quellcode:
procedure TCipher.InitKey(const Key: String; IVector: Pointer);
var
I: Integer;
begin
Hash.Init;
Hash.Calc(PChar(Key)^, Length(Key));
Hash.Done;
I := Hash.DigestKeySize;
if I > FKeySize then I := FKeySize; {generaly will truncate to large Keys}
Init(Hash.DigestKey^, I, IVector);
EncodeBuffer(Hash.DigestKey^, Hash.DigestKey^, Hash.DigestKeySize);
Done;
SetFlag(0, True);
end;
ausgeführt. Für mich sieht das erstmal so aus, dass der Hash angewendet wird.
Allerdings fürht auch dies
Delphi-Quellcode:
function Decode(const aPasswort: string): string;
var
cipher: TDECCipher;
pw: Binary;
begin
cipher := nil;
Result := '';
try
cipher := ValidCipher(CipherClass).Create;
cipher.Mode := CipherMode;
cipher.Init(KEY);
Result := cipher.DecodeBinary(aPasswort);
finally
FreeAndNil(cipher);
end;
end;
nicht zum Erfolg.
Die Umstellung auf
DEC 5.2 ist ausgelöst worden durch Delphi 2009, allerdings teste ich im Moment dies hier alles mit Delphi 2007, so das der KEY ein einfacher string ist, wie in der
DEC 3.0 Version auch.
Wo kann ich noch ansetzen?
Vielen Dank