title: Client Side Encryption Library
body: <p>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.</p>
  
  <p>So, I have a few questions.</p>
  
  <ol>
  <li><p>What is the risk factor in having server-client communication where the exchange of information between them is never encrypted.</p></li>
  <li><p>Should I bother encrypting the information.</p></li>
  <li><p>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).</p></li>
  <li><p>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.</p></li>
  </ol>
  
  <p>Any help would be appreciated! Thank you in advance.</p>