どうも、たくチャレ(@takuchalle)です。

C言語で OpenSSL の SHA256 ハッシュ関数を使ってみました。 その時の作業メモです。

動作環境

  • Ubuntu 16.04.6 LTS
  • clang version 8.0.0 (tags/RELEASE_800/final)
  • OpenSSL 1.0.2r

実装例

#include <stdio.h>
#include <openssl/sha.h>

int main(int argc, char *argv[])
{
	char *message = {"Sample Message"};
	unsigned char digest[SHA256_DIGEST_LENGTH];
	
	SHA256_CTX sha_ctx;
	SHA256_Init(&sha_ctx); // コンテキストを初期化
	SHA256_Update(&sha_ctx, message, sizeof(message)); // message を入力にする
	SHA256_Final(digest, &sha_ctx); // digest に出力

	printf("%s\n", message);
	
	for (int i = 0; i < sizeof(digest); ++i) {
		printf("%x", digest[i]);
	}
	printf("\n");

    return 0;
}

SHA512を使いたい場合は、256 の部分を 512 にすれば大丈夫です。

ビルド方法

# clang main.c -lcrypto

OpenSSLのライブラリをリンクするために-lcryptoオプションを付けてください。 今回はclangを使いましたが、gccでも同じようにできます。

同じカテゴリの記事