ホームページ  >  記事  >  バックエンド開発  >  OpenSSL と C を使用して SHA256 ハッシュを生成する方法 : ステップバイステップ ガイド

OpenSSL と C を使用して SHA256 ハッシュを生成する方法 : ステップバイステップ ガイド

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 06:07:02131ブラウズ

How to Generate SHA256 Hashes Using OpenSSL and C  : A Step-by-Step Guide

OpenSSL と C を使用した SHA256 の生成

はじめに:
安全なハッシュの作成は暗号化の基本的な側面です。特にデータの整合性とセキュリティ検証の観点で最も広く使用されているハッシュ アルゴリズムの 1 つは SHA256 です。この記事では、OpenSSL ライブラリと C を使用して SHA256 ハッシュを効果的に生成する方法について詳しく説明します。

SHA256 ハッシュの実装:
SHA256 ハッシュを正常に生成するには、次の手順に従います:

  1. SHA256 関数に必要な OpenSSL ヘッダーを含めます:

    <code class="cpp">#include <openssl/sha.h></code>
  2. バイナリ ハッシュ値を 16 進文字列に変換する関数を定義します:

    <code class="cpp">void sha256_hash_string (unsigned char hash[SHA256_DIGEST_LENGTH], char outputBuffer[65])</code>
  3. 文字列のメイン SHA256 ハッシュ計算関数を実装します:

    <code class="cpp">void sha256_string(char *string, char outputBuffer[65])</code>
  4. ファイルの SHA256 ハッシュを生成する必要がある場合:

    <code class="cpp">int sha256_file(char *path, char outputBuffer[65])</code>

使用例:
これらの関数を実装したら、次のサンプル コードに示すように、それらを利用して SHA256 ハッシュを生成できます:

<code class="cpp">static unsigned char buffer[65];
sha256("string", buffer);
printf("%s\n", buffer);</code>

インクルード パスの問題への対処:
提供されたコード サンプルでは、​​正しいヘッダー ファイルが含まれているにもかかわらず、コンパイラは OpenSSL 関数を見つけるのが難しいと報告しました。この問題は、次のようなフラグを使用してコンパイル中に正しいインクルード パスが指定されていることを確認することで解決できます。

<code class="cpp">-I/opt/ssl/include/ -L/opt/ssl/lib/ -lcrypto</code>

「/opt/ssl」を OpenSSL インストールへの関連パスに置き換えると、問題が解決されるはずです。

以上がOpenSSL と C を使用して SHA256 ハッシュを生成する方法 : ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。