有没有简单的方法来使用库来散列数据数组?

我正在考虑使用CRC-32或SHA-1 ,可能在我在Linux(Ubuntu)上开发的C程序中使用。

是否有任何简单的方法可以使用库? 将CRC-32算法剪切并粘贴到我的程序的源代码中似乎很简单,但对SHA-1做同样的事情感觉有些不稳定。 有没有简单的方法来使用库,最好是在Ubuntu中但不一定?

我正在使用C,但如果必须的话,C ++会好的。

OpenSSL接口非常简单:

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

d是指向要散列的输入的指针,长度为nmd是指向SHA_DIGEST_LENGTH字节的指针,其中将存储SHA1哈希。

SHA有很多免费库。 例如,这个很棒: http : //www.cryptopp.com/ (C ++)

考虑使用纯C的LibTomCrypt。当然 ,你必须下载,编译和安装它。 您可能已经发现已经安装了OpenSSL库 – 但是这些库的接口更复杂(也更灵活,但您可能不需要灵活性)。 另外,我认为他们也是纯粹的C.