Как безопасно передать пароль? Пишу для самообразования чат на Node.js. Для хеширования паролей пользователей, как на сервере, так и на клиенте, использую https://www.npmjs.com/package/crypto-js
Алгоритм такой:
Пользователь вводит логин и пароль и жмет войти
Шифруем пароль на клиенте например так:
var password = $('#pass').val();
var encrypted = CryptoJS.SHA512(password );
// .. шлем пароль и логин на сервер
На сервере сравниваем с хэшем из БД
И т. д.
Это же неправильно? Или забить и слать по старинке, а на сервере хешировать и сравнивать?

21 Авг 2019 в 07:13
193 +1
0
Ответы
1

Для передачи пароля безопасно лучше использовать протокол HTTPS, который обеспечивает защищенное соединение между клиентом и сервером. Шифрование пароля на клиенте может усилить безопасность, но не является достаточно надежным способом защиты пароля.
На сервере лучше хешировать пароль с помощью хэширования с солью (salted hashing) перед сохранением в БД. При аутентификации, сравнивайте хешированный пароль из запроса пользователя с хешированным паролем из БД.
Также необходимо проводить валидацию пароля на стороне сервера, чтобы избежать SQL инъекций и других типов атак. Валидация может включать проверку длины пароля, наличие специальных символов и так далее.
Использование библиотеки Crypto-js для шифрования на клиенте может быть полезным для дополнительной защиты, но не забывайте об использовании HTTPS и корректной обработке данных на сервере.

20 Апр 2024 в 13:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир