パスワードを繰り返し覚えるのに役立つ小さなユーティリティを作成しています。パスワードを入力して、各セッションの前ではなく、毎日1回だけ記憶させたいと思います。もちろん、私はパスワード自体は保存しませんが、ハッシュは喜んで保存します。
では、C++標準ライブラリを使用してstd::string
からハッシュを取得する最も簡単な方法は何ですか?
外部ライブラリを含まない簡単な解決策として、hash<std::string>
を使用してstring
sをハッシュできます。ヘッダーファイルhash_map
またはunordered_map
(またはその他のファイル)を含めることで定義されます。
#include <string>
#include <unordered_map>
hash<string> hasher;
string s = "heyho";
size_t hash = hasher(s);
SHAのセキュリティを追加したい場合は、他のすべての機能が必要ない場合は、大規模なCrypto ++ライブラリをダウンロードする必要はありません。インターネットにはスタンドアロンの実装がたくさんあります。「sha implementation c ++」を検索してください。
c ++ 11を使用すると、次のことができます。
#include <string>
#include <unordered_map>
std::size_t h1 = std::hash<std::string>{}("MyString");
std::size_t h2 = std::hash<double>{}(3.14159);
詳細はこちら こちら 。
STLファンクタハッシュ を使用できます。 STLライブラリにあるかどうかを確認します。
これは_size_t
_を返すため、範囲はnumeric_limits<size_t>::min()
numeric_limits<size_t>::max()
であることに注意してください。 SHAまたはそれが受け入れられない場合は何かを使用する必要があります。