Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Hash-Funktion (https://www.delphipraxis.net/125935-hash-funktion.html)

HugoHase 15. Dez 2008 12:11

Re: Hash-Funktion
 
Zitat:

Das wären 91^32 = 4,89e+62 verschiedene Möglichkeiten.
Da fällt ir ja grad was auf ... es sind 32^91 = 10^137 (also 137 Stellen im Dezimalsystem) = 2^455 mögliche Ergebnisse
Gruß HugoHase

gammatester 15. Dez 2008 12:47

Re: Hash-Funktion
 
Zitat:

Zitat von HugoHase
Zitat:

Das wären 91^32 = 4,89e+62 verschiedene Möglichkeiten.
Da fällt ir ja grad was auf ... es sind 32^91 = 10^137 (also 137 Stellen im Dezimalsystem) = 2^455 mögliche Ergebnisse
Gruß HugoHase

Nö, 91^32 ist richtig :? . 1 Stelle = 91 Möglichkeiten, 2 Stellen 91^2 etc. Sonst hättest Du ja auch bei einer zweistellen Dezimalzahl 2^10 = 1024 Möglichkeiten!!! :shock:

Gammatester

Xong 15. Dez 2008 12:53

Re: Hash-Funktion
 
Zitat:

Zitat von HugoHase
Solange man sich jedoch auf das vergleichen der Strings konzentriert,
ist das denke ich mal irrelevant.

Hashes werden effizient (also z. B. in DBMS) nicht über ihre Stringerscheinungen verglichen.

Ein XOR Vergleich ist wesentlich schneller.

Wie genau bei einem DBMS der Hashwert beim Suchen im AVL-Baum verglichen wird, weiß ich nicht, aber auf jeden Fall werden dafür nicht mehr als 4 Assemblerbefehle verschwendet:
Code:
Load ZAHL1
Load ZAHL2
Sub
JumpSigned (Sprung, wenn negativ)

Zitat:

Zitat von sx2008
Zitat:

Zitat von Xong
Bei vielen Dateien (vorallem Programme und ISO-Images) werden ja MD5 und SHA1-Prüfsummen als Hexstring angegeben, damit derjenige, der die Dateien runtergeladen hat prüfen kann ob die Dateien unverfälscht sind.


Das ist bei HugoHases Hash auch ohne Probleme möglich.
Er hat 32 8-Bit-Zeichen. Das wären also 64 Hexwerte.
Dabei sieht man dann auch recht schnell, dass bestimmte Hexwertpaare gar nicht vorkommen werden. Ich könnte auf Anhieb mehr als 1000 solcher Paare nennen. Das meint ich mit der ineffizienten Bitauslastung.

Letztendlich hat Hugo nur 91 (oder 92?) Zeichen, die er verwendet. Konsequent wäre, 128 oder 64 Zeichen zu verwenden und eine entsprechende Kodierung dafür zu nutzen. Alle Bits würden gleich oft vorkommen.
Ein Beispiel für eine 64-Zeichen-Kodierung wäre Base64 (A-Za-z0-9_-).
Im Moment verschwendet er 256-91=165 weitere mögliche Zeichen, nutzt also noch nicht mal die Hälfte aller möglichen Zeichen.

LG,
Xong

HugoHase 15. Dez 2008 13:27

Re: Hash-Funktion
 
Ok gib mir nen bisschen Zeit du hast mich überzeugt, Xong
;)
Ich hätte das hier füher posten sollen -.-
Vielen Dank an alle

HugoHase 15. Dez 2008 13:56

Re: Hash-Funktion
 
Liste der Anhänge anzeigen (Anzahl: 2)
Also nun die überarbeitete Version der FP32 aka Tripple-H Funktion:
Wenn ich mich jetzt nicht irre hat sie nun 16^64 mögliche Ergebnisse.
Im Anhang findet ihr wieder die uFP32.dcu und das kleine Test-Programm.
MfG HugoHase

cherry 29. Dez 2008 07:11

Re: Hash-Funktion
 
und wo bleibt jetzt der code? ;-)

QuickAndDirty 29. Dez 2008 09:51

Re: Hash-Funktion
 
Jetzt ist der Code Firmen Geheimnis von CompuGlobalHyperMegaNet dem Internet Start up.


@Hugo Hase
Are you bitchchecker?

cherry 29. Dez 2008 09:53

Re: Hash-Funktion
 
Zitat:

Zitat von HugoHase
Dann guck bitte am besten noch mal am 18. oder 19. Dezember rein wenn ich den Quelltext poste ;)

so viel zu dem !!!

Florian H 29. Dez 2008 11:07

Re: Hash-Funktion
 
Zitat:

Zitat von cherry
Zitat:

Zitat von HugoHase
Dann guck bitte am besten noch mal am 18. oder 19. Dezember rein wenn ich den Quelltext poste ;)

so viel zu dem !!!

Friede sei mit dir ... der Thread wurde heute erst wieder ausgegraben, vielleicht hat er einfach nicht dran gedacht.

HugoHase 29. Dez 2008 13:14

Re: Hash-Funktion
 
Liste der Anhänge anzeigen (Anzahl: 2)
Nein ich hab in nicht vergessen wollte nur noch etwas Zeit verstreichen lassen.
Hier wie versprochen der Quelltext:


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

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