¿Existe una biblioteca estándar o biblioteca de uso común que se pueda usar para calcular los hash SHA-512 en Linux?Cómo calcular un hash SHA-512 en C++ en Linux?
Estoy buscando una biblioteca C o C++.
¿Existe una biblioteca estándar o biblioteca de uso común que se pueda usar para calcular los hash SHA-512 en Linux?Cómo calcular un hash SHA-512 en C++ en Linux?
Estoy buscando una biblioteca C o C++.
Ha marcado OpenSSL. Yo mismo no lo he usado, pero la documentación dice que lo admite.
Aquí está la lista de few more implementations.
código Ejemplo
md = EVP_get_digestbyname("sha512");
EVP_MD_CTX_init(&mdctx);
EVP_DigestInit_ex(&mdctx, md, NULL);
EVP_DigestUpdate(&mdctx, mess1, strlen(mess1));
EVP_DigestUpdate(&mdctx, mess2, strlen(mess2));
EVP_DigestFinal_ex(&mdctx, md_value, &md_len);
EVP_MD_CTX_cleanup(&mdctx);
he tenido un gran éxito con este:
licencia BSD. Cubre SHA-1, SHA-224, SHA-256, SHA-384 y SHA-512. Tiene buenas funciones de ayudador para reducir los pasos en casos simples:
SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH])
También tiene muchas opciones de ajuste de rendimiento.
Estoy usando Botan para diversos fines criptográficos. Tiene muchos tipos de algoritmos SHA (-512).
Cuando estaba buscando en C++ crypto libraries también encontré Crypto++. El estilo de la API Botan fue más directo para mí, pero ambas bibliotecas son sólidas y maduras.
¿Sabes dónde están los documentos sha512 para Botan? –
@ Graco En muchos casos, no hay documentos específicos para algunos algoritmos. La razón es que cada algoritmo se implementa como un filtro que puede usarse de manera muy similar a otros. Si está interesado en parámetros específicos, busque el algoritmo en wikipedia porque la implementación debe ser canónica. Los comentarios en los encabezados también pueden ayudar. El [manual] (http://botan.randombit.net/manual/) proporciona información sobre el uso de los filtros. –
Verificar this code. Es completamente portátil y no necesita configuraciones adicionales. Solo STL sería suficiente. Usted sólo necesita declarar
#include "sha512.hh"
y luego usar las funciones
sw::sha512::calculate("SHA512 of std::string") // hash of a string, or
sw::sha512::file(path) // hash of a file specified by its path, or
sw::sha512::calculate(&data, sizeof(data)) // hash of any block of data
siempre que los necesite. Su valor de retorno es std::string
Heh. Me ganaste porque "OpenSSL es compatible con SHA512". tiene solo 24 caracteres y las respuestas deben ser de al menos 30. –
¿Puede vincular a la documentación de la función que puedo usar para calcular el hash? –
Se agregó un código de ejemplo a la respuesta. – Zimbabao