Лучше всего сохранить пароль в mysql, который можно расшифровать также с помощью php

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

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

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

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

благодаря

Авинаш

Solutions Collecting From Web of "Лучше всего сохранить пароль в mysql, который можно расшифровать также с помощью php"

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

Во-первых, используйте что-то лучше, чем md5. Затем создайте способ «сбросить» пароль, но никогда не сможете фактически восстановить пароль из db …

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

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

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

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

Небезопасно делать это, чтобы вы могли создать способ сброса пароля

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

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

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

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

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

C.

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

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

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