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