3

.NET アプリケーションの一部を Linux 上の Qt に移植しています。.NET 関数の結果を複製して、パスワード + ソルトの SHA-256 ハッシュを作成しようとしています。.NET コードは

return new SHA256Managed().ComputeHash(buffer);

buffer は、パスワードに連結されたソルトです。

QCA や Botan を含むいくつかの暗号化ライブラリを検討し、いくつかのコメントを読んだ後、Botan を試すことにしました。ただし、上記のコードと同等のものを実行するための適切な場所がドキュメント内に見つかりません。

ボタンを使用して単純なハッシュを作成する方法について説明している細かいマニュアルまたはチュートリアルの場所を教えてもらえますか? 私は解決策を見つけることなく、数時間グーグル検索を行ってきました。パイプとストリームの SHA-256 ハッシュの例はたくさんありますが、単純なハッシュ計算の例はまだ見つかっていません。

4

1 に答える 1

9

ドキュメントが必要なだけだと思います。

やりたいことをするためのコードは次のようなものです。

#include <vector>
#include <sha2_32.h>

using namespace Botan;

secure_vector<byte> somefunction(std::vector<byte> input) {
    SHA_256 sha;
    return sha.process(input);
}

コメントで述べたように、これはパスワードを保存するための非常に安全でない方法なので、bcryptまたはPBKDF2(どちらもBotanに実装されています)を使用することをお勧めします。PBKDF2も.NET標準ライブラリの一部であるため、安全なパスワードハッシュ関数の代わりに汎用ハッシュ関数を使用する言い訳はありません。

bcryptに必要なのは次のとおりです。

generate_bcrypt(password, random_number_generator, work_factor)
于 2012-10-11T03:33:37.377 に答える