如何用C语言正确地实现MD5哈希算法?
时间: 2024-12-24 12:37:36 浏览: 9
在C语言中实现MD5哈希算法通常需要使用专门的库函数,因为MD5是一种复杂的加密算法,直接编写底层操作可能会非常复杂。OpenSSL库是一个常用的选项,它提供了一套完整的加密工具包,其中包括MD5。
以下是使用OpenSSL库计算MD5哈希的基本步骤:
```c
#include <openssl/md5.h>
#include <string.h>
void compute_md5(const unsigned char* input, int len, unsigned char output[MD5_DIGEST_LENGTH]) {
MD5_CTX md5ctx;
MD5_Init(&md5ctx);
MD5_Update(&md5ctx, input, len);
MD5_Final(output, &md5ctx);
}
// 示例用法
int main() {
const char *input = "Hello, World!";
unsigned char hash[MD5_DIGEST_LENGTH];
compute_md5((unsigned char*)input, strlen(input), hash);
// 输出哈希结果
for (size_t i = 0; i < MD5_DIGEST_LENGTH; ++i) {
printf("%02x", hash[i]);
}
return 0;
}
```
阅读全文