Каковы некоторые широко используемые библиотеки криптографии / хеширования в C?

#c #cryptography

#c #криптография

Вопрос:

Я работал над реализациями криптографии в C. От меня требуется использовать хэш сообщения с использованием любой из популярных хэш-функций, таких как SHA, MD5 и т.д.

В Java есть библиотека безопасности, которая заботится об этих вещах.
Но как мне сделать то же самое в C?

например: char * str = «это сообщение»; char * hash = SHA(str);

Что-то в этом роде. Было бы очень полезно, если бы кто-нибудь мог указать мне на какую-нибудь библиотеку, в которой уже реализованы эти функции, которые я могу вызвать для своей программы.

Спасибо!

Комментарии:

1. Должно ли это быть сделано в C , а не C нет?

2. Привели ли вас поиски к каким-либо соответствующим библиотекам, которые можно было бы использовать в качестве примеров и / или указать на предыдущие исследования?

3. Я опубликовал вопрос после его поиска в Google. Мне не удалось найти какое-либо «стандартное» решение моей проблемы. Думал, что Stackoverflow предоставит мне множество простых и стандартных опций! Надеюсь, я не использую сайт. @Andy: Это на C.

4. Какая операционная система? Если это Unix или что-то подобное Unix, вероятно, в нем уже установлен OpenSSL. Попробуйте man 3 md5

Ответ №1:

sphlib — это библиотека с открытым исходным кодом, которая предоставляет оптимизированные (но переносимые) реализации на C многих хеш-функций.

OpenSSL — это более универсальная криптографическая библиотека, которая широко развернута и также предоставляет реализации хэш-функций (меньше хэш-функций, чем sphlib, но она также включает другие криптографические примитивы).

Ответ №2:

OpenSSL действительно широко доступен. Для вашего примера вы могли бы использовать

 unsigned char digest[SHA_DIGEST_LENGTH]; 
char *str = "this is a string";
SHA1(str, strlen(str), digest);