Javascript и PHP шифрование / дешифрование - PullRequest
3 голосов
/ 20 апреля 2011

По сути, у меня есть форма ajax, которая содержит информацию для входа в систему, есть ли способ, которым я могу зашифровать пароль, прежде чем он отправит в ajax, а затем расшифровать его в php?

Или любые другие способы, которыми я должен смотреть на это?

Большое спасибо:)

Ответы [ 5 ]

4 голосов
/ 20 апреля 2011

Нет смысла делать какое-либо шифрование в JavaScript или PHP, поскольку подходящим решением является использование SSL (HTTPS). В настоящее время вы даже можете бесплатно получить сертификаты, которым доверяют все браузеры поэтому нет причин не использовать SSL.

Если по какой-то причине вы не можете использовать SSL, вы можете получить реализацию RSA на JavaScript, чтобы вы могли шифровать ее локально, но только ваш сервер может ее расшифровать.еще раз.

2 голосов
/ 20 апреля 2011

Используйте SSL-сертификат и отправьте логин через HTTPS из формы AJAX.

2 голосов
/ 20 апреля 2011

Вы можете использовать RC4, так как я знаю, что есть реализация его в PHP и Javascript. Однако при любом типе шифрования вам придется оставить клиентскую часть ключа (чтобы он мог ее зашифровать), что означает, что любой, кто имеет доступ к вашей странице, может получить ключ и расшифровать его (таким образом, победив точку).

Возможно, вам лучше либо хэшировать его на стороне клиента (а затем сопоставлять хэши в PHP, если вам не нужно знать пароль), либо использовать шифрование с открытым ключом (например, RSA), чтобы клиенты может зашифровать, но не расшифровать.

Для хеширования посмотрите на hash () и sha1 для Javascript .

А для RSA, проверьте это сообщение в блоге http://www.sematopia.com/2008/10/rsa-encrypting-in-javascript-and-decrypting-in-php/

0 голосов
/ 20 апреля 2011

Вы можете сделать md5(password) в JS и PHP, а затем сравнить зашифрованные пароли.

Поскольку имя пользователя не зашифровано, вы можете использовать его для получения пароля от БД в PHP, а затем зашифровать его.

Лучший способ сделать это:

  • сгенерируйте uniqid , сохраните его в $_SESSION['crypt_key'] и отправьте в виде скрытого ввода в форму AJAX;
  • шифровать в JS, используя md5(crypt_key + password) перед отправкой;
  • зашифруйте в PHP используя md5($_SESSION['crypt_key'] . $password) и сравните их. Таким образом, каждый запрос будет передавать непредсказуемый зашифрованный пароль.
0 голосов
/ 20 апреля 2011

Вы не можете безопасно. Вы должны использовать https

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