Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hash mit DEC: wie und welchen (https://www.delphipraxis.net/57409-hash-mit-dec-wie-und-welchen.html)

negaH 10. Sep 2007 16:15

Re: Hash mit DEC: wie und welchen
 
1.) http://www.michael-puff.de/Developer...agen_Reddmann/ neuste Version holen

2.)

Delphi-Quellcode:

ResultAsHEXString := THash_MD5.CalcBinary(DeinStringHier, TFormat_HEX);
In der neusten Version sind einige Veränderungen drinnen die dir die Arbeit erleichtern, schnelleren Code erzeugen, und weniger Resourcen verbrauchen sprich nicht unnötige Klassen mit in die EXE einlinken. Voraussetzung ist Delphi 5 oder höher.

Gruß Hagen

negaH 10. Sep 2007 16:24

Re: Hash mit DEC: wie und welchen
 
Per hand geht das dann so

Delphi-Quellcode:

with THash_MD5.Create do
try
  Init;
  Calc(DeinString[1], Length(DeinString));
  Calc(NochEinString[1], Length(NochEinString));
  Calc(IrgendEinInteger, SizeOf(IrgendEinInteger));
  Done;

  ResultAsHEXString := DigestStr(TFOrmat_HEX);
finally
  Free;
end;
Mit der von Hand Methode kannst du verschiedene Datenbereich nacheinander so hashen als wären die in einem Datenbereich linear sequentiell angeordnet.

Um ein Passwort auf sicherer Weise in einen Sessionkey umzuwandeln supporten die Hash Klassen eigene Methoden. Sowas macht man über KDF's = Key Derivation Functions und dafür gibt es sogar Standardverfahren.

Delphi-Quellcode:

var
  Salt: Binary;
begin
  Salt := RandomBinary(16);
 
  SessionKey := THash_MD5.KDFx(Password, Salt, 16, TFormat_Binary);
end;
Das wandelt das Password in einen 16 Byte langen binären Wert um der mit dem Zufalls-Salt und mehreren Runden an Hash-Berechnungen verknüpft wurde.
Die Methoden .KDF1(), .KDFx() gibts in 2 Versionen, und sie benötigen einen Zufalls-Salt.

Möchtest du ohne diesen Salt arbeiten, den du ja mit übertragen musst, dann sind es MGFs = Mask Generation Functions. Diese Methoden heisen dann .MGF1 und .MGFx().

Die x'er Versionen sind prohibitär von mir entwickelt und im Grunde besser als die Standard-Versionen .KDF2() und .MGF1(). Diese basieren auf dem IEEE Standard für Kryptographie. Schau dir in Unit DECHash.pas einfach deren Implentierungen an.


Gruß Hagen

dominikkv 11. Sep 2007 07:15

Re: Hash mit DEC: wie und welchen
 
habs jetzt so gemacht und geht:
Delphi-Quellcode:
result := THash_MD4.CalcFile(Source, TFormat_HEX);
und sry ich hab grad gesehen das es hier eigendlich um CalcString ging... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz