Comment calculer un hachage SHA-512 en C ++ sous Linux?

Existe-t-il une bibliothèque standard ou une bibliothèque couramment utilisée pouvant être utilisée pour calculer les hachages SHA-512 sous Linux?

Je cherche une bibliothèque C ou C ++.

Avez-vous vérifié OpenSSL . Je ne l’ai pas moi-même utilisé mais la documentation dit qu’il le supporte.

Voici une liste de quelques implémentations supplémentaires.

Exemple de code

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); 

J’utilise Botan à diverses fins cryptographiques. Il a plusieurs sortes d’algorithmes SHA (-512).

Lorsque je regardais les bibliothèques de cryptage C ++, j’ai également trouvé Crypto ++ . Le style de l’API Botan était plus simple pour moi, mais ces deux bibliothèques sont solides et matures.

Vérifiez ce code . Il est entièrement portable et ne nécessite aucune configuration supplémentaire. Seul le STL suffirait. Vous aurez juste besoin de déclarer

 #include "sha512.hh" 

puis utilisez les fonctions

 sw::sha512::calculate("SHA512 of std::ssortingng") // hash of a ssortingng, 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 

chaque fois que vous en avez besoin. Leur valeur de retour est std::ssortingng

J’ai eu beaucoup de succès avec ceci:

Algorithme de hachage sécurisé (SHA)

Licence BSD. Il couvre SHA-1, SHA-224, SHA-256, SHA-384 et SHA-512. Il a des fonctions d’assistance soignées qui réduisent les étapes pour les cas simples:

 SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH]) 

Il a également beaucoup d’options de réglage des performances.