BCrypt :: Пароль Ruby - PullRequest
       15

BCrypt :: Пароль Ruby

0 голосов
/ 18 января 2020

Я сейчас работаю над Ruby и не могу понять, в чем разница между

def create_hash_digest(password)
  BCrypt::Password.create(password)
end

def verify_hash_digest(password)
  BCrypt::Password.new(password)
end

Этот образец взят из курса Удеми по окончании Ruby на Rails

Ответы [ 2 ]

1 голос
/ 18 января 2020

#create используется для Ха sh секрета, возвращая экземпляр BCrypt::Password, т. Е. Шифрование

#new используется для расшифровки BCrypt::Password экземпляра с данными из сохраненного ха sh.

include BCrypt
# hash a user's password
@password = Password.create("my grand secret")
@password #=> "$2a$12$C5.FIvVDS9W4AYZ/Ib37YuWd/7ozp1UaMhU28UKrfSxp2oDchbi3K"

# store it safely @user.update_attribute(:password, @password)

# read it back
@user.reload!
@db_password = Password.new(@user.password)

# compare it after retrieval
@db_password == "my grand secret" #=> true
@db_password == "a paltry guess" #=> false
0 голосов
/ 18 января 2020

#create преобразует ваш пароль в га sh:

'my_password' ~> '$2a$12$C5.FIvVDS9W4AYZ/Ib37...' 

, а #new преобразует его обратно.

...