как создать модуль входа - PullRequest
0 голосов
/ 23 октября 2010

Мне нужно создать модуль входа в систему (вопрос не зависит от языка), но я не уверен, как я проверю пользователя. Где и как я буду хранить пароли. Должен ли я зашифровать и расшифровать свои пароли и, если да, каков наилучший предлагаемый способ сделать их. В общем, мне нужно знать, что нужно для разработки модуля входа в систему, где пользователь может безопасно войти в систему для доступа к моему сайту.

Ответы [ 2 ]

3 голосов
/ 23 октября 2010

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

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

Я обычно использую следующую функцию для хеширования пользовательских паролей:

$password_hash = sha1(MY_SALT_1 . $login_name . MY_SALT_2 .
    $password . MY_SALT_3);

где MY_SALT_ * - произвольные предопределенные строки, может быть, например, «темная», «сторона», «луна» (или, на самом деле, чем меньше связано - тем лучше).

0 голосов
/ 23 октября 2010

Да. Конечно, вам нужно зашифровать пароли пользователей. Потому что большинство пользователей используют один и тот же пароль почти на всех сайтах. В то время они не хотят показывать пароли администраторам. И еще одна причина - большую часть времени работы сайта. К БД может обращаться не только администратор. Некоторые другие технические специалисты в организации. Так что лучше шифровать пароль. SHA1 - лучший способ сделать шифрование.
Where and how will i store the passwords.
Я не уверен, что вы подразумеваете под этим. Каждый использует для этого базу данных, как phpmyadmin.

...