Ich brauche Hash-Funktion. Benutzer werden diese Hashes auf den Computer schreiben, so dass der Hashwert kurz sein sollte. Ich werde etwa 50 000 000 Datensätze in der Datenbank haben. Jeder muss einen eigenen Hash haben. Ich hätte gerne einzigartige Hashes. Aber wenn ein paar Datensätze den gleichen Hash haben, kann ich akzeptieren. Einzigartig ist besser.Kürzester Hash? MD5/SHA. Erste Zeichen, Git
MD2 ist gut sicher für mich, aber Hash ist lang: "8350e5a3e24c153df2275c9f80692773" - 32 Zeichen. Wenn Sie 10 MD2-Hash auf Tastatur schreiben müssen Sie nicht glücklich ...
Git verwenden SHA1 für jeden Commit (40 Zeichen). Aber in der Ausgabe zeigen nur die ersten 7 Zeichen:
$ git log
commit e2cfc89fae5b43594b2c649fd4c05bcc6d2d12ac
...
commit 56a8b4c50d4269dc3f88727472933fd81231f63b
...
commit ce2e9ddbe896b9592abbd5fcb6604b181809d523
...
commit 498c49833516ea33b6a40697634ea6e3cfd62328
...
commit b7d78aea415e64d8d441f9747fe6d5d48fe54ee5
$ git log --oneline | head -n 5
e2cfc89 commnit message...
56a8b4c commnit message...
ce2e9dd commnit message...
498c498 commnit message...
b7d78ae commnit message...
Wie ist es sicher/einzigartig? Wenn ich zum Beispiel die ersten 5 oder 10 Zeichen von MD5/SHA-1/SHA-256 verwende, ist das sicher genug?
Vielen Dank.
Ich weiß, git nur ersten 7 Zeichen zur Vereinfachung verwenden. Verwenden Sie für die eindeutige Identifizierung immer noch den vollständigen SHA-1-Hash. Ist es sehr wahrscheinlich, dass es mehr gleiche Hashs mit den gleichen ersten 7 Zeichen gibt? – martin
Vielen Dank für die Antwort. Wenn ich SHA256 Hash für "123" verwende, ist "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3". Ist es besser, die ersten 8 Zeichen zu bekommen oder zum Beispiel jedes achte Zeichen zu bekommen? Was meinst du damit? – martin
Es sollte keinen Unterschied zwischen den gewählten Zeichen geben. –