2009-04-28 6 views
10

Was ist eine Hochleistungs-Hash-Bibliothek, die auch plattformübergreifend für C/C++ ist? Für Algorithmen wie MD5, SHA1, CRC32 und Adler32.Schnelle plattformübergreifende C/C++ - Hash-Bibliothek

hatte ich zunächst den Eindruck, dass Boost diese hatte, aber anscheinend nicht (noch).

Der vielversprechendste, den ich bis jetzt gefunden habe, ist Crypto ++, irgendwelche anderen Vorschläge? http://www.cryptopp.com/ Dies scheint ziemlich umfassend zu sein.

+0

Ich würde Cryptopp gehen. – Skurmedel

Antwort

7

Für die üblichen Krypto-Hashes (MD ?, SHA? Usw.) ist openssl das beweglichste und wahrscheinlich das schnellste. Keine der genannten Hashes eignet sich für Hochleistungsdatenstrukturen wie Hashtabellen. Die empfohlenen Hashfunktionen für diese Datenstrukturen sind in diesen Tagen: FNV, Jenkins und MurmurHash.

+1

interessant. Könntest du Links posten? (ja ich weiß, ich kann diese googlen ...) –

+0

Danke, ich werde in openssl nachsehen. Die Verwendung der Hashes wird nicht für Hash-Tabellen, sondern als Hashes für die Authentifizierung und Dokumentenüberprüfungen verwendet (wurde manipuliert etc.) –

4

QT seem to implement MD4, MD5 und SHA1

+4

Warum eine ganze Widget-Bibliothek einbinden, nur um ihre MD5- und SHA-1-Implementierungen zu verwenden? * Wenn * Sie QT bereits verwenden, könnte dies eine machbare Option sein, ansonsten ist es übertrieben. –

+1

Doxygen verwendet QTCore und keine der GUI-Klassen. Es stellt sich heraus, dass QT eine ziemlich gute Plattformabstraktion hat. Siehe [Doxygen FAQ] (http://www.stack.nl/~dimitri/doxygen/faq.html) # 9. –

1

zlib verfügt über eine integrierte in Umsetzung einer crc32 Variante und ist weit portiert. =)

2

Ich würde definitiv mit CryptoPP gehen, es hat eine schöne Lizenz, um damit auch zu gehen.

+0

Ja, schnappen Sie einfach den Code, den Sie brauchen, und Sie werden eingestellt. – Skurmedel

1

Gerät plattformübergreifend? Wenn es für Sie bedeutet, was es für mich bedeutet, bedeutet das nicht linux oder vielleicht betriebssystemunabhängig. Ich würde solche Dinge wie openssl vermeiden. Ich ging mit libtomcrypt. Jetzt so weit wie Geschwindigkeit geht? Nun, schnell, tragbar, C, wählte zwei beliebige.

+0

Das libtomcrypt sperrt interessant. – Johan

0

Werfen Sie einen Blick auf die plibsys C-Bibliothek: Es unterstützt MD5, SHA1, SHA-2 (224, 256, 384, 512), SHA-3 (224, 256, 384, 512) und GOST 34.11-94 Kryptografie Hash-Algorithmen. Die Bibliothek ist tragbar und leichtgewichtig.