2010-08-22 3 views
1

Я думаю об использовании CRC-32 или SHA-1, возможно, как в программе на C, которую я разрабатываю на Linux (Ubuntu).Есть ли простой способ использовать библиотеки для хэш-массивов данных?

Есть ли какой-либо простой способ использования библиотек? Резка и вставка алгоритма CRC-32 в исходный код моей программы кажутся достаточно простыми, но для SHA-1 это делает несколько шатким. Есть ли простой способ использовать библиотеки, желательно в Ubuntu, но не обязательно?

Я использую C, но C++ был бы в порядке, если бы мне пришлось.

ответ

2

Интерфейс OpenSSL довольно прост:

#include <openssl/sha.h> 

unsigned char *SHA1(const unsigned char *d, unsigned long n, unsigned char *md); 

d является указателем на вход для хэширования с длиной n. md - это указатель на SHA_DIGEST_LENGTH байт, где будет храниться хэш SHA1.

1

У вас есть много бесплатных библиотек для SHA. Например, это один велик: http://www.cryptopp.com/ (C++)

+0

Это тоже было хорошо: http://www.crypto-hash.fr/modules/wfdownloads/singlefile.php?cid=13&lid=10 –

1

Рассмотрите возможность использования LibTomCrypt, который является чистым C. Вы должны были бы скачать, скомпилировать и установить, что, конечно же. Вероятно, вы обнаружите, что библиотеки OpenSSL уже установлены, но интерфейс к ним более сложный (более гибкий, но вам, вероятно, не нужна гибкость). Оффлайн, я думаю, они тоже чистые.

Смежные вопросы