私は C++11 と std::hash アルゴリズムを使用しています。私は、実際にどのハッシュ実装が使用されているのだろうかと思っていました。MD5 または SHA だと思いますが、インターネットから情報を掘り下げることはできません。
また、MySQL に格納する必要があるため、実際に返されるハッシュのビット幅を知りたいです。
最後に、 crypto++ などの他のライブラリよりも std::hash を使用することをお勧めしますか?
に選択されるアルゴリズムは、std::hash実装のみに依存します。おそらく、MD5 も SHA も使用されていません。これらは、その目的のためにパフォーマンス キラーになるからです。
std::hashMD5 と SHA は暗号化の目的で開発されているため、暗号化の要件がないため、ほとんどの実装は上記よりもはるかに簡単です。
の要件std::hashはそれほど厳密ではありません。
Key。size_tパラメータのハッシュ値を表す型の値を返します。k1とk2が等しい場合、std::hash<Key>()(k1) == std::hash<Key>()(k2).k1の場合、確率は非常に小さくなり、 に近づきます。k2std::hash<Key>()(k1) == std::hash<Key>()(k2)1.0/std::numeric_limits<size_t>::max()