OpenSSL と C を使用した SHA256 ハッシュの生成
ハッシュは、データの一意のフィンガープリント、つまりダイジェストを生成するために使用される暗号化手法です。 SHA256 (セキュア ハッシュ アルゴリズム 2、256 ビット) の場合、このダイジェストは 256 ビットの 16 進文字列です。 SHA256 は、データの整合性のチェック、デジタル署名の検証、パスワードの安全な保存に一般的に使用されます。
この記事では、OpenSSL ライブラリと C コードを使用して SHA256 ハッシュを生成する方法を説明します。
OpenSSL ヘッダーを含める
まず、C コンパイラで OpenSSL ヘッダーを使用できることを確認してください。通常、次の include ステートメントを使用できます:
#include
Create the SHA256 Context
次に、ハッシュ プロセスを初期化するために SHA256 コンテキストを作成する必要があります。これは次のコードで実行できます:
SHA256_CTX context;
SHA256_Init(&context);
データで SHA256 コンテキストを更新
ハッシュを生成するには、ハッシュするデータを SHA256 コンテキストにフィードする必要があります。これは、SHA256_Update() 関数を使用してチャンクで行うことができます:
SHA256_Update(&context, data, data_length);
ハッシュの完成
すべてのデータが SHA256 コンテキストに供給されたら、SHA256_Final() 関数を使用してハッシュを完成させることができます。
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);
結果のハッシュはハッシュ配列に保存されます。
16 進文字列に変換します
最後に、バイナリ ハッシュを人間が判読できる 16 進文字列に変換する必要があります:
char hex_hash[65];
for (int i = 0; i x", hash[i]);
}
hex_hash[64] = 0;
使用例
関数を配置したので、必要に応じてそれらを使用して SHA256 ハッシュを生成できます。例:
// Generate a hash for a string
char hash_string[65];
SHA256_string("Hello, world!", hash_string);
// Generate a hash for a file
char hash_file[65];
SHA256_file("path/to/file", hash_file);
これにより、指定された文字列またはファイルの SHA256 ハッシュが生成され、対応するバッファに保存されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3