AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Frage zu RandomBinary() (aus dem DEC)
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu RandomBinary() (aus dem DEC)

Ein Thema von andyk77 · begonnen am 20. Jun 2008 · letzter Beitrag vom 3. Aug 2009
Antwort Antwort
andyk77

Registriert seit: 17. Jun 2008
1 Beiträge
 
#1

Frage zu RandomBinary() (aus dem DEC)

  Alt 20. Jun 2008, 09:54
Hallo.

Ich habe ein kleines Programm zur Verschlüsselung von Strings geschrieben. Dazu habe ich die Funktionen des DEC verwendet. Die Verschlüsselung an sich funktioniert auch. Allerdings habe ich das Phänomen, dass die Funktion
Salt := RandomBinary(16); bei jedem Programmstart die gleichen Ergebnisse liefert. Ich starte also das Programm, starte die Verschlüsselung und erhalte als Ergebnis von RandomBinary(16) fŠ'#$A'«È½üt³'#$C'\¦]÷±^. Wenn ich jetzt weitere Strings verschlüssele kommen erwartungsgemäß auch andere Wert bei dem Aufruf von RandomBinary(16). Benende ich nun mein Programm und starte es neu ist das Ergebnis von RandomBinary(16) identisch zu dem, was bei dem letzten Programmstart ausgegeben wurde (fŠ'#$A'«È½üt³'#$C'\¦]÷±^). Auch die Reihenfolge der weiteren Ergebnisse ist identisch zu dem vorherigen Programmstart.

Ist das die normale Funktionsweise, oder muss ich noch irgendwas anderes berücksichtigen.
  Mit Zitat antworten Zitat
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
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

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

  Alt 3. Aug 2009, 15:15
Habt ihr Hagen's Kommentar gelesen?

Delphi-Quellcode:
// Random Buffer/Binary, ATTENTION! standard Random Function aren't
// crytographicaly secure, please include DECRandom to install secure PRNG
Den sollte man auch gelesen haben, steht in DECRandom.pas Zeile 78:

Delphi-Quellcode:
// initalize a non-repeatable Seed based on Timers,
    // ATTENTION! this way isn't secure inpredictable,
    // the user should call RandomSeed(Data, SizeOf(Data)) instead,
    // where Date contains as example collected informations based on Human inputs.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz