C言語OpenSSLでMD5ハッシュ計算

C言語でOpenSSLのライブラリを使ってMD5ハッシュ値を取得するためのメモ。基本的にはSHA256(C言語OpenSSLでSHA256ハッシュ計算)と同じ。

概要

MD5_CTXでコンテキストを生成、MD5_Initで初期化して、MD5_Updateでソースデータを追加していき、最後にMD5_Finalでバッファにハッシュ値を書き出す。

ハッシュ値は16 bytesとなる。

ソースコード

SHA256と同じく、入力が文字列でないことも想定して、ソースの長さ(str_len)も一緒に渡したほうがいい(ソース(src)に0が含まれるとハッシュ値が期待どおりにならない)。


#include <openssl/md5.h> // MD5 Library

int compute_md5(unsigned char * src, unsigned int src_len, unsigned char * buffer) {
  MD5_CTX c;
  MD5_Init(&c);
  MD5_Update(&c, src, src_len);
  MD5_Final(buffer, &c);
  return 0;
}

エラー処理はしていないので、必要なら適宜してください。

なお、コンパイル時は-lcryptoオプションが必要です。

# gcc hogehoge.c -lcrypto

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です