Hash für 128-Bit-Daten
-
Hier:
template <typename T> T hash_data(const T& data) { return data; }
Sehr schnell und 100% kollisionssicher.
-
könnt ihr das Trollen hier lassen?
-
fgdfdfs schrieb:
Kann mir jemand einen guten Hashalgo sagen, der 128-Bit-Daten hasht und einen Hash ausgibt, der in ca. 1 GiB passt?
Such Dir was aus: http://en.wikipedia.org/wiki/List_of_hash_functions
-
Danke, volkard!
-
Nur um das klarzustellen: Hast einen Wert der durch 128 Bit repraesntiert wird und moechtest daraus 1 GigaByte generieren?
-
Ich will 2^128 Bit -> 2 GiB hashen.
-
So wie er es schreibt, ja.
Von daher: selber Troll blöder fgdfdfs.Wenn du einen PRNG suchst dann sag dass du einen PRNG suchst.
Ein Hash ist genau das Gegenteil.
-
fgdfdfs schrieb:
Ich will 2^128 Bit -> 2 GiB hashen.
Unfug.
-
OK, ich will 2^128 Bit -> ~32 Bit hashen.
-
Ich glaube der will uns verarschen. Ansonsten haette er sich wohl etwas mehr Muehe bei der Fragestellung gegeben.
-
Quatsch, 128 Bit -> ca. 32 Bit
-
Was denn jetzt? Willst du von 128 Bit auf 1GB oder von 2^128 Bit (3.96*10^28 GB) auf 32 Bit?
-
128 Bit in 32 Bit hashen? Na zerteil das Ding in 32bit Blöcke, XOR die zusammen und fertig. Wenn du eine hilfreichere Antwort haben willst, musst du eine sinnvollere Frage stellen.
-
Oh, schon werden die Verben weggelassen. Gleich sind es die Substantive.
-
fgdfdfs schrieb:
OK, ich will 2^128 Bit -> ~32 Bit hashen.
Ich zweifle ein wenig. 2^128 Bit sind ca 2^116 Festplatten und die wiegen ca 2^113 Tonnen, was ungefähr 5000 Sonnenmassen entspricht.
-
dot schrieb:
128 Bit in 32 Bit hashen? Na zerteil das Ding in 32bit Blöcke, XOR die zusammen und fertig. Wenn du eine hilfreichere Antwort haben willst, musst du eine sinnvollere Frage stellen.
Dann lies doch: Es soll kollisionssischer und schnell geschehen.
-
Kollisionssicher geht aber nicht wenn die Definitionsmenge mächtiger ist als die Zielmenge...
-
Kollisionssicher, nicht -frei.
-
Ich dachte eigentlich es soll kein kryptographischer Hash sein?
Aber naja, volkard hat ja schon eine Tabelle bekannter Hashfunktionen gepostet. Da sind einige dabei die 32 Bit Hashes erzeugen, also such dir eine aus...
-
fgdfdfs schrieb:
Quatsch, 128 Bit -> ca. 32 Bit
Na, dan haben wir's ja. Dann paßt auch die verlinkte Seite.
Die gute Wahl der Hashfunktion ist eine Kunst für sich. Ohne nähere Kenntniss der Datenlage würde ich bei sowas wie CRC32 anfangen und richtung schlichtem XOR oder gar nur Nehmen der hinteren Bits gehen, wenn es die Kollissionen nicht stark vermehrt.