関数を使う方法もあります。以降で使えるもので、いくつかのハッシュアルゴリズムに対応しています。この関数を使うときには、指定したアルゴリズムが使えるかどうかを気にする必要はありません。サポートしていないアルゴリズムでも使うことができます。このアルゴリズムをデフォルトで使っています。比較して計算コストが高いにもかかわらず、スケーラブルだからです。パスワードを検証する場合は、タイミング攻撃に注意が必要です。タイミング攻撃を避けるため、処理時間が一定な文字列比較処理を使うようにしましょう。文字列比較の処理時間が一定ではありません。使うようにしましょう。ソルトとは?暗号理論におけるソルトとは、ハッシュ処理の際に追加するデータのことです。出力を解析される可能性を減らすために利用します。端的に言うと、ソルトとはちょっとした追加データです。これをつけるだけで、ハッシュをクラックするのが劇的に難しくなります。事前に計算済みのハッシュとその元入力を大量にまとめた表が、オンラインで多数公開されています。ソルトを使えば、そのハッシュ値がこれらの表に含まれている可能性を大きく減らすことができます。ソルトを指定しなかった場合にはランダムなソルトを作ります。一般に、これがいちばんお手軽で安全なアプローチでしょう。使った場合、戻り値であるパスワードハッシュの中にソルトが含まれています。このソルトは、そのままの形式でデータベースに格納する必要があります。渡せばパスワードの検証ができるからです。戻り値の書式を次の図に示します。このように、使ったアルゴリズムや検証時に必要なソフトに関する情報もすべて含まれています。