4

ユーザーがサインアップすると、.salt を使用してソルトが生成されるパスワード システムを使用していますBCrypt::Password.create("Use #{username} with #{Time.now} and #{rand(100)} to make salt", cost: 13)

次に、入力したパスワードを暗号化し、BCrypt::Password.create("Put #{salt} on the #{password}")両方をデータベースに保存します。

彼らがログインするとき、それはこれを使用します:

check_password = BCrypt::Password.new(hashed_password)
check_password == "Put #{salt} on the #{password}"

問題は、ソルトが BCrypt で暗号化された文字列である限り、パスワード チェックで常に true が返されることです。

私はBCryptにかなり慣れていないので、これを完全に間違っている可能性があります。それは私の技術ですか、それともより深い問題ですか?

4

0 に答える 0