2015-04-18 2 views
0

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

login_table 
--------------------- 
id PK 
emailAddress 
password 
firstName 
lastName 
telephone 
address 

Я гугле его и видел некоторые примеры, которые только имели {PK, имя пользователя, пароль}.

Было бы общепринятым считать всю информацию в одной таблице или разделять информацию? Нужно ли мне шифровать пароль перед отправкой значения в базу данных или может быть сделано в базе данных?

+1

Имея всю информацию в одной таблице, кажется мне хорошо, если они являются отношениями один к одному. Что касается пароля, вы не должны хранить или передавать пароль (или зашифрованный пароль) вообще. Вместо этого вам нужен соленый хеш. Взгляните на этот ответ: http://security.stackexchange.com/a/51983. – Luca

+0

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

+0

Спасибо за отзыв. – user3221699

ответ

0

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

Если вам не нужен пароль ни для чего, кроме проверки входа в систему, предпочтительнее хеш-пароль. При сохранении пароля вы можете использовать, например, SHA2($server_key + $PK + $password). Вы должны вычислять и сравнивать этот хэш каждый раз из полученных данных, когда пользователь регистрировался.

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

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

+0

Спасибо за отзыв. – user3221699