我最近尝试在 C 中使用 openssl 进行 MD4 散列:MD4 hash with openssl, save result into char array。我想再做一次,但现在使用EVP_Digest
. 但是有了这段代码,我的核心就被抛弃了——为什么?
#include <string.h>
#include <stdio.h>
#include <openssl/md4.h>
int main()
{
unsigned char digest[MD4_DIGEST_LENGTH];
char string[] = "hello world";
EVP_Digest(string, strlen(string), digest, NULL, EVP_md4(), NULL);
char mdString[MD4_DIGEST_LENGTH*2+1];
int i;
for( i = 0; i < MD4_DIGEST_LENGTH; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
printf("md4 digest: %s\n", mdString);
return 0;
}