has_secure_password
暗号化されたパスワードをデータベースに保存するために使用したい。has_secure_password
何らかの形の塩漬けを使用している場合、インターネットで見つけることができません。塩漬けを使用する場合、どのように機能しますか? 誰かが私のためにこれを明確にすることができますか?
タイス
has_secure_password
暗号化されたパスワードをデータベースに保存するために使用したい。has_secure_password
何らかの形の塩漬けを使用している場合、インターネットで見つけることができません。塩漬けを使用する場合、どのように機能しますか? 誰かが私のためにこれを明確にすることができますか?
タイス
has_secure_password
bcrypt-rubyを使用します。bcrypt-ruby
ソルトの保存と生成を自動的に処理します。からの典型的なハッシュはbcrypt-ruby
次のようになります$2a$10$4wXszTTd7ass8j5ZLpK/7.ywXXgDh7XPNmzfIWeZC1dMGpFghd92e
。このハッシュは、次の関数を使用して内部的に分割されます。
def split_hash(h)
_, v, c, mash = h.split('$')
return v, c.to_i, h[0, 29].to_str, mash[-31, 31].to_str
end
ハッシュの例では、この関数は以下を生成します。
の==
-function はBCrypt::Password
、ソルトを抽出し、渡された文字列に適用します。
BCrypt::Password.create('bla') == 'bla' # => true