Лучший путь экономит пароль в mysql, который может быть расшифрован, также используя php

Я в настоящее время использую функцию md5, чтобы зашифровать мой пароль и спасти к mysql db, который не может быть расшифрован.

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

Таким образом, мой вопрос - это, что я должен использовать, чтобы зашифровать мой пароль и сохранить в mysql Базе данных. И я могу расшифровать тот пароль также.

я работаю на php и mysql.

Спасибо

Avinash

11
задан markus 25 January 2010 в 09:25
поделиться

8 ответов

Не делайте этого ...

Во-первых, используйте что-то лучше, чем MD5. Затем создайте способ «Сбросить» пароль, но никогда не способ на самом деле решить пароль из БД ...

, которые сделают ваше приложение менее безопасно, но, возможно, даже хуже; Вы и у ваших пользователей возникнут проблема, если ваши данные будут украдены! Кто-то будет иметь базу данных с именами пользователями и паролями всех ваших пользователей!

14
ответ дан 3 December 2019 в 06:21
поделиться

Не делайте этого ...

Во-первых, используйте что-то лучше, чем MD5. Затем создайте способ «Сбросить» пароль, но никогда не способ на самом деле решить пароль из БД ...

, которые сделают ваше приложение менее безопасно, но, возможно, даже хуже; Вы и у ваших пользователей возникнут проблема, если ваши данные будут украдены! Кто-то будет иметь базу данных с именами пользователями и паролями всех ваших пользователей!

-121--2954040-1--- 2954040-

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

4
ответ дан 3 December 2019 в 06:21
поделиться

как насчет crypt () или openssl ?

-121--2954043-

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

-121--2954042-

Небезопасно делать то, что лучше создать способ сброса пароля

0
ответ дан 3 December 2019 в 06:21
поделиться

Как насчет Crypt () или OpenSSL ?

0
ответ дан 3 December 2019 в 06:21
поделиться

Невозможно хранить пароль таким образом, что он все еще восстанавливается без него

1), сохраняя ключ дешифрования в вашем коде / данным (что скорее поражает цель Hashing / Шифрование пароля)

2) Шифрование пароля с использованием общего / частно-ключа Шифрование ключей Маршрутизация восстановления через SOM вроде полуборудового процесса, в котором можно восстановить пароль.

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

c.

0
ответ дан 3 December 2019 в 06:21
поделиться

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

1
ответ дан 3 December 2019 в 06:21
поделиться

Если вы запускаете внутренний частный сайт без проблем безопасности, просто храните пароли с помощью XOR 0XAD в каждом байте. В противном случае сброс является единственным вариантом.

0
ответ дан 3 December 2019 в 06:21
поделиться
  • Создайте динамические соли (2, один «постоянный» для смешивания с паролем перед HASHING / CREATHING, другой динамический, изменяющий каждый раз в журналах пользователя);

     $ dynamicsalt = '';
    для ($ i = 0; $ i <8; $ i ++)
     {
      $ dynamicsalt. = Chr (Rand (33, 126));
     }
     
  • Никогда не сохраняйте пароли любым способом, которые могут помочь вам «декодировать» их позже, он не зависит от вас, чтобы получить ваш исходный пароль, но, чтобы пользователям сбросить его

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

0
ответ дан 3 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: