我一直在研究C中的加密实现。
我需要使用任何一种流行的哈希函数(如SHA,MD5等)来使用哈希消息。
在Java中,有一个安全库可以处理这些事情
但是我如何在C中做同样的事情?
例如:
char * str =“这是一条消息”;
char * hash = SHA(str);
这种东西。如果有人可以指向一些已经实现了这些功能的库,我可以为我的程序调用,这将是非常有帮助的。
谢谢!
2 个答案:
答案 0 :(得分:10)
sphlib是一个开源库,它在许多哈希函数的C中提供优化(但可移植)的实现。
OpenSSL是一个更通用的加密库,它被广泛部署并提供了散列函数的实现(散列函数少于sphlib,但它还包括其他加密原语)。
答案 1 :(得分:4)
OpenSSL确实可以广泛使用。对于您的示例,您可以使用
unsigned char digest[SHA_DIGEST_LENGTH];
char *str = "this is a string";
SHA1(str, strlen(str), digest);