Как я могу преобразовать обратно в исходную строку пароль дайджеста bcrypt? - PullRequest
0 голосов
/ 01 мая 2020

Я занимаюсь разработкой приложения ruby, у меня есть внутренняя таблица пользователей, в которой хранится зашифрованный пароль с использованием gem-bcrypt. Как я могу на самом деле преобразовать свой пароль обратно в исходный, чтобы отобразить его в моем представлении? это код для переваривания моего пароля

def self.digest(string)        
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost        
BCrypt::Password.create(string, cost: cost)    
end

1 Ответ

3 голосов
/ 01 мая 2020

Из readme :

Background

Ha sh алгоритмы берут порцию данных (например, пароль вашего пользователя) и создают " цифровой отпечаток ", или ха sh, из него. Поскольку этот процесс необратим, нет возможности go от га sh вернуться к паролю.

Другими словами:

hash(p) #=> <unique gibberish>

Вы можете сохранить ха sh и сравните его с ха sh, сделанным из потенциально действительного пароля:

<unique gibberish> =? hash(just_entered_password)

Я также не понимаю, почему вы хотите это сделать. Если бы вы могли вернуть его обратно к паролю, что помешало бы хакеру, который украл ваш набор данных, сделать то же самое? Весь смысл хеширования паролей в том, что их нельзя перевернуть. Вы можете проверить только правильность введенного пароля.

...