
mhash 라이브러리는 OpenSSL 라이브러리의 일부로, OpenSSL 1.1.0 이후 버전부터 deprecated 상태입니다. 따라서 mhash_init() 함수가 실패하는 이유는 OpenSSL 1.1.0 이후 버전에서 mhash 라이브러리가 더 이상 지원되지 않기 때문입니다.
이러한 오류를 해결하기 위해서는 OpenSSL 1.1.0 이전 버전으로 다운그레이드하거나, OpenSSL의 다른 함수를 사용하는 것을 고려해 볼 수 있습니다.
예를 들어, OpenSSL의 EVP_DigestInit() 함수를 사용하여 MD5 해시를 생성할 수 있습니다.
#hostingforum.kr
c
#include
#include
int main() {
EVP_MD_CTX *mdctx;
const EVP_MD *md;
unsigned char md_value[EVP_MD_size(EVP_md5())];
int md_len;
md = EVP_md5();
mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, md, NULL);
EVP_DigestUpdate(mdctx, "Hello, World!", 13);
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
EVP_MD_CTX_free(mdctx);
printf("MD5: %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02xn",
md_value[0], md_value[1], md_value[2], md_value[3],
md_value[4], md_value[5], md_value[6], md_value[7],
md_value[8], md_value[9], md_value[10], md_value[11],
md_value[12], md_value[13], md_value[14], md_value[15]);
return 0;
}
이 예제는 OpenSSL의 EVP_DigestInit() 함수를 사용하여 MD5 해시를 생성합니다.
2025-06-11 19:36