Rails Devise, как расшифровать пароль? - PullRequest
6 голосов
/ 05 апреля 2011

в rails 3 devise, запись пользователя имеет зашифрованный пароль и пароль_сольта.

Как в консоли я могу получить пароль пользователя? Как расшифровать?

Ответы [ 4 ]

12 голосов
/ 05 апреля 2011

При разработке по умолчанию используется алгоритм BCrypt, который AFAIK не может расшифровать.Если вам нужно расшифровать пароли, вам нужно использовать другой алгоритм, такой как AES .

. Существует gem , который расширяет поддержку AES для Devise.,

Примечание: я ответил на этот вопрос исключительно из академического интереса.Было бы рекомендовано продолжать использовать BCrypt.Я призываю вас соблюдать крайнюю осторожность, так как управление паролями - рискованное дело.

2 голосов
/ 01 мая 2015

Devise использует BCrypt. Вам нужно изменить поле encrypted_password в таблице USERS и ввести новый зашифрованный пароль.

Вы можете создать новый зашифрованный пароль на этом сайте: http://www.bcrypt -generator.com /

0 голосов
/ 05 апреля 2011
class User < ActiveRecord::Base

  devise :database_authenticatable...

  def verify_password?(password)
    encryptor_class = Devise::Encryptors.const_get(Devise.encryptor.to_s.classify)
    encryptor_digest = encryptor_class.digest(password, Devise.stretches, self.password_salt, Devise.pepper)
    encryptor_digest == self.encrypted_password
  end
end
0 голосов
/ 05 апреля 2011

Я думаю, что эти пароли шифруются односторонним образом: вы можете взять пароль, предоставленный пользователем, зашифровать его и сравнить с зашифрованным в базе данных (если совпадение - успешная попытка).Но дешифрование в базе данных невозможно, так что никто не может получить все пароли.Это функция безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...