Сохранить пароль?- Это безопасно? - PullRequest
2 голосов
/ 18 января 2010

Я должен сохранить электронные адреса пользователей в моей системе (php + mysql).

Я делаю это сейчас так: альтернативный текст http://codecookie.net/showcase/cred_save.png

Это безопасно? А когда нет, какой лучший способ сделать это?

Ответы [ 4 ]

4 голосов
/ 18 января 2010

Соленые хэши - один из лучших способов справиться с «хранением» паролей (на самом деле вы не храните его как таковой). Обратите внимание, что пароль не подлежит восстановлению, поэтому ваше приложение должно учитывать это с помощью функции «сброса пароля».

2 голосов
/ 18 января 2010

Я бы рекомендовал использовать hmac со случайно сгенерированной солью. Соль помогает пользователям, использующим пароли типа «a», а hmac предотвращает атаки с удлинением.

1 голос
/ 18 января 2010

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

function salt_password($password)
{
  $salt_1 = '7a@#!P^@29g';
  $salt_2 = 'mw3*@~2%21mD';
  //whatever random nonesense you can come up with

  return sha1($salt_1.$password.$salt_2);
}

function store_password($user,$password)
{
 $password = salt_password($password);

 //insert username and password in whatever table;
}

function login($user,$password)
{
 //select username and password info from db

 if(salt_password($password) == $selected_password_from_db))
 {
   return true;
 }
 else
 {
   return false
 }
}
1 голос
/ 18 января 2010

Звучит хорошо для меня :) Поскольку вы сохраняете не реальный пароль, а соленый хеш, такой подход должен быть безопасным.

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