0

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

return new SHA256Managed().ComputeHash(buffer);

ハッシュを作成するコードがありますが、json オブジェクトに埋め込むことができる形式ではありません。

// create the hash of the salt+password
Botan::SecureVector<Botan::byte> passwordHash = HashData(salt,StringToArray(m_password));
// convert to a QByteArray
QByteArray qPasswordHash;
for(uint i=0; i<passwordHash.size();++i){
    qPasswordHash[i]= passwordHash[i];
}

参考までに、StringToArray メソッドを以下に示します。

QByteArray StringToArray(QString szInput){
    QByteArray buffer = szInput.toUtf8().data();
    return buffer;
}

.NET クラスからの出力と一致させるために、qPasswordHash をドキュメントに示されているような Base64 フィルターに通す必要がありますか? もしそうなら、コード例を教えてもらえますか、またはこの Botan メソッドを使用するための正しい構文の例を提供できますか?

4

1 に答える 1

0

最も一般的な方法は、16 進エンコードを使用することです。つまり、各バイトは、文字列内で 2 桁の 16 進数として表されます。これは、Base64 よりも実装が簡単です。

于 2012-11-07T10:01:55.543 に答える