Let's say I want to build a dropbox clone. When users upload files they need to be encrypted. Later on, when the user needs to access their files, the application should be able to decrypt them using the password supplied by the user. The application also needs to allow users to change their passwords.
How do I go about implementing the encryption/decryption here? I know this is a solved problem in the industry but is there a clear step-by-step instruction on how to implement this (e.g. in NodeJS). I don't want to design my own method, which is most likely going to be flawed.