OpenSSL と C を使用して SHA256 を生成する
この記事では、OpenSSL ライブラリと C を使用して SHA256 ハッシュを生成する方法について説明します。 SHA256 は、任意のデータの一意の 256 ビット ダイジェストを生成する、広く使用されている暗号化ハッシュ関数です。
実装
まず、OpenSSL 開発が確実に行われるようにする必要があります。ライブラリとヘッダーはシステムで利用できます。必要なヘッダーを含めた後、実装に進むことができます:
<code class="cpp">#include <openssl/sha.h> // Function to generate SHA256 hash of a string void sha256_string(char *string, char outputBuffer[65]) { unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; SHA256_Init(&sha256); SHA256_Update(&sha256, string, strlen(string)); SHA256_Final(hash, &sha256); int i = 0; for (i = 0; i < SHA256_DIGEST_LENGTH; i++) { sprintf(outputBuffer + (i * 2), "%02x", hash[i]); } outputBuffer[64] = 0; }</code>
ファイルから SHA256 ハッシュを生成するには、次の関数を使用します:
<code class="cpp">int sha256_file(char *path, char outputBuffer[65]) { FILE *file = fopen(path, "rb"); if (!file) return -534; unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_CTX sha256; SHA256_Init(&sha256); const int bufSize = 32768; unsigned char *buffer = malloc(bufSize); int bytesRead = 0; if (!buffer) return ENOMEM; while ((bytesRead = fread(buffer, 1, bufSize, file))) { SHA256_Update(&sha256, buffer, bytesRead); } SHA256_Final(hash, &sha256); sha256_hash_string(hash, outputBuffer); fclose(file); free(buffer); return 0; }</code>
これらの関数を使用するには、入力文字列またはファイル パスを引数として渡すだけです。生成された SHA256 ハッシュは、提供された出力バッファーに返されます。
以上がOpenSSL と C を使用して SHA256 ハッシュを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。