このコードを使用してパスワードをハッシュしています。
hash_hmac('sha512', $password . $salt, $hmac_key);
鍵には 4096 ビットで十分ですか?
ありがとうございました!
パスワードハッシュ用?もちろん。十分な長さの塩で十分です。
ここでハッシュを使用する目的は何かを理解する必要があります。パスワードをハッシュしているので、誰かがこれらのハッシュを入手しても、元のパスワードを推測することはできません。ブルート フォース攻撃やレインボー テーブル ベースの攻撃が効果的でないようにソルトを使用し、パスワードごとにソルトを一意にして、同じパスワードを使用する 2 人のユーザーが異なるハッシュを持つようにします。HMAC は、一種のソルトとして機能することを除いて、ここではセキュリティに何も追加しません。
HMAC は、ハッシュ関数をメッセージ/ファイルのデジタル署名として使用する場合に関連します (たとえば、php.net がダウンロード ページで使用する方法)。HMAC キーを使用して、このキーを知っている人だけがハッシュ化されたコンテンツの信頼性を検証できるようにし (ダウンロードしたファイルの md5 を誰もが確認できる php.net ダウンロードとは対照的に)、同じメッセージを生成するメッセージのなりすましをより困難にします。ハッシュ (ターゲットにするハッシュを知るために、キーを知る必要があります)