私はMichaelHartlの本を読んでいます(素晴らしい、無料のリソース、ところで、Michaelに感謝します!)。パスワードのソルトとハッシュについて質問があります。パスワードをソルトするポイントは、ハッカーがレインボー攻撃を実行しないようにすることです。これは、ハッカーが使用されている暗号化の種類を推測できる場合、基本的にブルートフォース攻撃です。この種の攻撃を防ぐために、暗号化される前にパスワードをランダム化するためにソルトが使用されますが、そのソルトは暗号化されたパスワードと一緒に保存する必要がありますか?もしそうなら、ハッカーがデータベースにアクセスして暗号化されたパスワードを取得できる場合、ハッカーはソルトを取得してレインボー攻撃を続行することもできませんか?
これがMichaelのプロセスのコード例です...
>> Time.now.utc
=> Fri Jan 29 18:11:27 UTC 2010
>> password = "secret"
=> "secret"
>> salt = secure_hash("#{Time.now.utc}--#{password}")
=> "d1a3eb8c9aab32ec19cfda810d2ab351873b5dca4e16e7f57b3c1932113314c8"
>> encrypted_password = secure_hash("#{salt}--#{password}")
=> "69a98a49b7fd103058639be84fb88c19c998c8ad3639cfc5deb458018561c847"
本当にありがとう!