Ich verwende SHA-1, um Duplikate in einem Programm zu erkennen, das Dateien verarbeitet. Es muss nicht kryptographisch stark sein und kann reversibel sein. Ich fand diese Liste der schnellen Hash-Funktionen https://code.google.com/p/xxhash/Schnelle Hash-Funktion mit Kollisionsmöglichkeit in der Nähe von SHA-1
Was wähle ich, wenn ich eine schnellere Funktion und Kollision auf Zufallsdaten in der Nähe von SHA-1 möchte?
Vielleicht ist ein 128-Bit-Hash für die Datendeduplizierung gut genug? (vs 160 bit sha-1)
In meinem Programm wird der Hash auf Chuncks von 0 - 512 KB berechnet.
Verwenden Sie den, den git verwendet. Wenn es gut genug für Git ist, ist es gut genug für Sie! – joop
Git verwendet SHA-1 und die "Hot-Loop" des Git-Workflow ist eindeutig nicht Git-Commit. Das OP und ich selbst sind an Hash-Funktionen interessiert, die für die ~ hot-Schleife sinnvoll sind (z. B. eine In-Mem-Datenbank) und bieten sehr starke Kollisionsgarantien und Bit-Unabhängigkeit usw. – alphazero
CPU "Fast" ist wahrscheinlich irrelevant - Die E/A wird wahrscheinlich fast die gesamte verstrichene Zeit sein. –