![]() |
Re: Hash mit DEC: wie und welchen
1.)
![]() 2.)
Delphi-Quellcode:
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.ResultAsHEXString := THash_MD5.CalcBinary(DeinStringHier, TFormat_HEX); Gruß Hagen |
Re: Hash mit DEC: wie und welchen
Per hand geht das dann so
Delphi-Quellcode:
Mit der von Hand Methode kannst du verschiedene Datenbereich nacheinander so hashen als wären die in einem Datenbereich linear sequentiell angeordnet.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; 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:
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.var Salt: Binary; begin Salt := RandomBinary(16); SessionKey := THash_MD5.KDFx(Password, Salt, 16, TFormat_Binary); end; 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 |
Re: Hash mit DEC: wie und welchen
habs jetzt so gemacht und geht:
Delphi-Quellcode:
und sry ich hab grad gesehen das es hier eigendlich um CalcString ging... :wall:
result := THash_MD4.CalcFile(Source, TFormat_HEX);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
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