devise - шифровать логин - PullRequest
1 голос
/ 29 января 2012

Знаете ли вы, если Devise предоставляет функцию для хранения хэша электронной почты в базе данных?

Если это так, каковы недостатки использования этой функции?

Я могу подумать о двух:

  • , очевидно, не удастся увидеть электронную почту на «экране» редактирования (за исключением [теоретического] случая, когда электронное письмо будет храниться с использованием симметричного шифрования вместо стандартного).

  • если соль (по любой причине) скомпрометирована и требует изменения, планирование стратегии восстановления будет сложной задачей (а не просто заставит пользователей сменить пароль при следующем входе в систему). Тем не менее, я думаю, что это выполнимо.

спасибо,

1 Ответ

0 голосов
/ 29 января 2012

Не совсем отвечаю на вопрос, но я хочу подчеркнуть, что вы не хотите хэшировать значение логина. Симметричное шифрование, возможно. Соленая? Нет.

Почему бы и нет? Ваша система входа в систему должна найти правильную запись для человека, который пытается войти в систему. Это означает, что вы должны хешировать / шифровать значение и сравнивать с другими хешированными / зашифрованными значениями. Соль убивает шансы сделать это за один раз, и вам придется каждый раз запускать сканирование таблицы. Кроме того, у вас не будет ничего, кроме вероятности гарантировать, что логины двух людей не будут иметь хеш-коллизии.

Использование одной соли для всего применения убивает целевое назначение соли, поэтому нет причин для ее использования. Однако, если вы хотите сделать это, то это решает проблему сравнения.

Но вы все еще остаетесь с проблемой, что у вас могут быть столкновения. Вероятность низкая, но ненулевая, и по мере того, как вы набираете больше пользователей, в игру вступает эффект дня рождения, и у вас вполне могут возникнуть проблемы.

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