opensslを用いて、MD5のハッシュ値を求める
opensslのMD5関数
ハッシュ値を求める
#include <openssl/md5.h> unsigned char * MD5(const unsigned char *d, unsigned long n, unsigned char *md); 戻り値:MD5によるハッシュ値へのポインタ
opensslのMD5関数でハッシュ値を求めるサンプル
#include <stdio.h> #include <string.h> #include <openssl/md5.h> char * hexdigest(const char *key, int length) { static char hex[32 + 1]; unsigned char digest[16]; const char *hexformat = "%02x%02x%02x%02x%02x%02x%02x%02x" "%02x%02x%02x%02x%02x%02x%02x%02x"; MD5((const unsigned char*)key, length, digest); snprintf(hex, sizeof(hex)/sizeof(hex[0]), hexformat, digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], digest[8], digest[9], digest[10], digest[11], digest[12], digest[13], digest[14], digest[15] ); return hex; } int main() { char *key = "5"; char *digest; digest = hexdigest(key, strlen(key)); printf("%s\n", digest); return 0; }
ビルドするときは、gccに-lsslオプションをつける
>gcc -lssl md5.c
>./a.out
>e4da3b7fbbce2345d7772b0674a318d5