Талха уже ответил на ваш вопрос, хотя я просто предоставлю некоторые детали
Каков фактор риска при взаимодействии сервера с клиентом, когда обмен информацией между ними никогда не шифруется.
Теоретически каждый компьютер в сети, где передаются данные, может считывать данные. Реальность еще хуже - в настоящее время реализованная защищенная передача Wi-Fi WPA2 может быть перехвачена.
Должен ли я шифровать информацию.
Позвольте перефразировать ваш вопрос: я должен передавать информацию в зашифрованном виде? Да, нет причин не делать этого (кроме случаев, когда вы ленивый учитесь делать это). Использование HTTPS обеспечит конфиденциальность и целостность (чтобы никто не мешал вашим данным, а вы говорите на нужном сервере). HTTPS стал доступен сегодня. Существуют даже бесплатные услуги центра сертификации (например, letsencrypt.org).
При хранении паролей лучшим вариантом будет использование медленных криптографических хэшей (да, bcrypt сделает эту работу). Хеширование обычно происходит на стороне сервера.
Должен ли я шифровать информацию на стороне клиента? В основном это не лучшая идея. Дело в том, можете ли вы разумно управлять ключами шифрования? Обеспечить целостность данных? Обеспечить идентификацию сервера? Ограничить параметры для атак по побочным каналам? TLS делает все это для вас. Вы будете изобретать каменное колесо, пока уже есть хорошие надувные резиновые шины.
Если мне придется потрудиться зашифровать информацию на клиенте перед передачей, то какая библиотека шифрования на стороне клиента лучше всего это сделает (в контексте React, если это имеет значение).
Я использовал библиотеку CryptoJS для шифрования JS (я использовал ее на стороне сервера, но я считаю, что это не имеет значения).
Кроме того, как бы я отправил зашифрованную информацию о сервере клиенту, который расшифровывает ее с помощью технологии, отличной от bcrypt; или я должен использовать полностью клиентское шифрование, в то время как сервер просто читает и записывает зашифрованную информацию, не зная ее содержимого.
Просто - используйте TLS (HTTPS). В определенный момент вам нужно доверять вашему серверу. На самом деле вы все равно должны защищать свои данные (например, иметь пароли)
Вы можете создать свой собственный зашифрованный протокол связи (никто не сможет остановить вас), но это будет стоить вам много времени, а его безопасность все еще будет очень сомнительной (вежливо сказано).