I'm writing a communication website application. For security, the application encrypts passwords and messages before storing the information in a database. In its current state, messages and passwords are sent from client (React) to server (Node.js), where they are encrypted by bcrypt (server-side). When stored messages are read from the database by the server and sent to the client, they are decrypted by the server pre-transmission.
So, I have a few questions.
What is the risk factor in having server-client communication where the exchange of information between them is never encrypted.
Should I bother encrypting the information.
If I should bother encrypting the information on the client before transmission, what is the best client-side encryption library to do so (in a React context, if that makes a difference).
Also, how would I go about sending encrypted server information to the client, which decrypts it with a different technology than bcrypt; or, should I use entirely client-side encryption, while the server just reads and writes the encrypted information with no knowledge of its contents.
Any help would be appreciated! Thank you in advance.