Обновление и пароль md5 - PullRequest
       18

Обновление и пароль md5

0 голосов
/ 27 ноября 2009

Я храню пароли клиентов в БД с использованием шифрования.

Когда клиент редактирует свои личные данные (включая пароль), пароли отображаются как *****

Как я могу понять, что пользователь меняет свой пароль, чтобы писать в БД без шифрования снова и снова.

Я имею в виду, что значение в поле пароля является зашифрованным значением. Если не изменить пароль, необходимо обновить с тем же значением (или не обновлять вообще) Если пользователь меняет пароль на 1234, я должен зашифровать 1234 и записать в БД зашифрованное значение

Спасибо

Ответы [ 3 ]

6 голосов
/ 27 ноября 2009

Не отправлять хеш-строку md5 из БД обратно. Установите три поля:

  • Старый пароль
  • Новый пароль
  • Новый пароль снова

Затем проверьте, совпадает ли первое поле после хеширования md5 с сохраненным в БД. Если это так, хешируйте второе поле и сохраните его. (Только если второй и третий равен)

0 голосов
/ 27 ноября 2009

Несколько баллов:

  • MD5 - это алгоритм хэширования, вы никогда не сможете изменить хеш, и в этом все дело.
  • Не используйте MD5, поскольку он был взломан, используйте алгоритм хеширования SHA2 + (например, SHA256)
  • Просто подтвердите пароль «старым паролем», хешируя старый пароль против пароля в базе данных.
  • Другой вариант - сброс пароля, по которому на подтвержденный (надеюсь) контактный адрес электронной почты будет выслан новый пароль.
  • Если они уже вошли в систему, вам не нужно снова «подтверждать» старый пароль.
  • Никогда не отправляйте хешированный пароль обратно из базы данных, это своего рода поражение цели того, чего вы пытаетесь достичь.
0 голосов
/ 27 ноября 2009

Вам необходимо ввести как старый, так и новый пароль, когда пользователь хочет его изменить.

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

Это поможет вам отличить смену пароля от смены только настроек. Вы также получаете некоторый уровень безопасности, как если бы кто-то захватил сеанс вашего пользователя, он не может изменить свой пароль, не захватив также оригинальный пароль.

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