2009-04-28 19 views
10

¿Qué es una biblioteca hash de alto rendimiento que también es multiplataforma para C/C++. Para algoritmos como MD5, SHA1, CRC32 y Adler32.Fast Cross-Platform C/C++ Hashing Library

Al principio tuve la impresión de que Boost tenía estos, pero aparentemente no (aún).

El más prometedor que he encontrado hasta ahora es Crypto ++, ¿alguna otra sugerencia? http://www.cryptopp.com/ Esto parece ser bastante completo.

+0

Me gustaría ir a cryptopp. – Skurmedel

Respuesta

7

Para los algoritmos hash de cifrado habituales (MD ?, SHA? Etc.), openssl es el más portátil y probablemente el más rápido. Ninguno de los hash que mencionó son buenos para estructuras de datos de alto rendimiento como tablas hash. Las funciones hash recomendadas para estas estructuras de datos en estos días son: FNV, Jenkins y MurmurHash.

+1

interesante. podrías publicar enlaces? (Sí, lo sé, puedo buscarlos en Google ...) –

+0

Gracias, voy a buscar en openssl. El uso de hashes no será para tablas hash, sino que se usará como hashes para la autenticación y verificaciones de documentos (¿se manipuló, etc.)? –

4

QT seem to implement MD4, MD5 y SHA1

+4

¿Por qué incluir una biblioteca de widgets completa solo para usar sus implementaciones MD5 y SHA-1? * Si * ya estás usando QT esto podría ser una opción factible, de lo contrario es excesivo. –

+1

Doxygen usa QTCore y ninguna de las clases de GUI. Resulta que QT tiene una abstracción de plataforma bastante buena. Ver [FAQ de Doxygen] (http://www.stack.nl/~dimitri/doxygen/faq.html) # 9. –

1

zlib tiene un sistema incorporado en la ejecución de una variante crc32, y es ampliamente portado. =)

2

Definitivamente voy con CryptoPP, tiene una buena licencia para ir con él también.

+0

Sí, solo marca el código que necesitas y estarás listo. – Skurmedel

1

¿Dispositivo cross platform? Si esto significa para usted lo que significa para mí, eso significa que no Linux o tal vez el sistema operativo independiente. Evitaría y evitaría tales cosas como openssl. Fui con libtomcrypt. Ahora, en lo que respecta a la velocidad? Bien rápido, portátil, C, eligió dos.

+0

Ese libtomcrypt bloquea interesantes. – Johan

0

Eche un vistazo a la biblioteca C plibsys: es compatible con MD5, SHA1, SHA-2 (224, 256, 384, 512), SHA-3 (224, 256, 384, 512) y criptografía GOST 34.11-94 algoritmos hash. La biblioteca es portátil y liviana en sí misma.