Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Frage zu RandomBinary() (aus dem DEC)

  Alt 3. Aug 2009, 15:07
Dieses Verhalten konnte ich eben auch beobachten. Ist absichtlich gewollt, dass beim Programmstart immer die selbe Zufallszahl und dann die selbe Reihenfolge produziert wird? Eigentlich müsste das doch zufällig sein. Zum Verschlüsseln nehme ich den Beispielcode, der beim DEC in der Datei Example.txt mitgelieft wird. Siehe unten. Dieser nutzt RandomBinary und produziert daher immer die selben verschlüsselten Ergebnisse.

Delphi-Quellcode:
function Encrypt(const AText: String; const APassword: String): String; overload;
var
  ASalt: Binary;
  AData: Binary;
  APass: Binary;
begin
  with ValidCipher(ACipherClass).Create, Context do
  try
    ASalt := RandomBinary(16);
    APass := ValidHash(AHashClass).KDFx(APassword[1], Length(APassword) * SizeOf(APassword[1]), ASalt[1], Length(ASalt), KeySize, TFormat_Copy, AKDFIndex);
    Mode := ACipherMode;
    Init(APass);
    SetLength(AData, Length(AText) * SizeOf(AText[1]));
    Encode(AText[1], AData[1], Length(AData));
    Result := ValidFormat(ATextFormat).Encode(ASalt + AData + CalcMAC);
  finally
    Free;
    ProtectBinary(ASalt);
    ProtectBinary(AData);
    ProtectBinary(APass);
  end;
end;
  Mit Zitat antworten Zitat