I developed somethings similar a while ago for personal use, as I cannot trust anyone else's version.
The password is randomly chosen, but data is encrypted client side (as well as server side). I do update the code once in a great while, but ultimately I don't feel this can become a truly trustworthy product.
You can find the source here: https://github.com/johanns/Celox
Live site is here: https://celox.me
Good luck!