Есть несколько ответов на это, но я чувствую, что они покрывают хау, но не почему. Я попытаюсь не указывать подробные сведения о обработчиках баз данных или функциях шифрования, поскольку они меняются со временем.
Главное, что другие ответы показывают, что вы хотите создать хэш в PHP, а не в MySQL. Причина этого заключается в том, что если вы создаете хэш в MySQL, тогда PHP должен отправлять текстовый пароль для MySQL, и это просто еще один вектор, который может быть использован злоумышленником.
Затем вы сохраняете пароль как любую другую строку. Существует несколько способов хеширования пароля, и обычно вы хотите сохранить хешированный пароль и соль.
Например:
$salt = bin2hex(random_bytes(16));
$passwordHash = sha1('123456' . $salt);
Тогда ваш запрос будет что-то вроде следующего содержания:
INSERT INTO ... (..., password, salt) VALUES (..., $passwordHash, $salt)
Это помогает против того, чтобы узнать пароль, когда злоумышленник знает хэш пароля; проблема с хранением простых хэшей заключается в том, что она подвержена атакам радужного стола, где общие строки уже сопоставлены с их хэшами, поэтому можно искать исходную строку по ее хешу.
Редактировать: См. Комментарий Дж. Бланшара для более современного метода с использованием функций, встроенных в PHP, начиная с 5.5.
Вы вставляете для 3 столбцов ('email',' password', 'name'), но имеете только 2 заполнителя и только привязываете 2 значения - это приведет к ошибке выполнения –
' $ psswd = hash ($ _ POST ["passd"]); 'и остальные почти такие же. –
'echo" Querry error. ";' Это вам не поможет. 'mysqli_error ($ con)' будет. –