Live App: https://hypervault.github.io/
The source is in the src directory, and the deployment artifacts are in the root directory (as required by Github Pages).
- Hypervault is client-side file encryption web app.
- Hypervault is entirely contained in a single, static .htmlfile.- As such, you can save the Hypervault page, and you will have a complete working copy of Hypervault which you can run offline.
- Hypervault has no server-side components.
 
- Hypervault outputs another single .htmlfile which contains both the encrypted file data, and a copy of itself.
- It seems to work in most modern desktop browsers
- iOS support is coming soon
- Android is not yet tested
cd src
npm install
npm install -g grunt-cli
bower install
grunt build
./serve-dist.sh
Then localhost:8000 in browser.
grunt serve
- Hypervault uses the HTML5 File APIto read file data into the browser client-side.
- It then stores all the filenames, file types, file sizes, and file data (as base64) in aJSONobject.
- The user enters a Vault password and clicks Lock vault; Hypervault builds a locked vault like this:- Hypervault serializes the JSONblob containing all the file data, and encryptes it using the triplesec encryption library. The output of this is a single string.
- Hypervault then grabs it's own source code (without making any web requests), and treats it as a template with which it interpolates the encrypted file data by replacing the REPLACE_WITH_ENCRYPTED_DATA_.
- Hypervault also sets a variable in the new vault to indicate that this is a locked vault: _decryptionMode = true;.
- Hypervault then initiates a download of the new locked_vault.html.
 
- Hypervault serializes the 
- Secure
- Hypervault uses the Triplesec library, which uses 3 strong encryption algorithms (AES, Salsa20, and Blowfish), so you can rest assured that your data is safe, even if a couple of the ciphers are compromised.
- Since Hypervault runs in a browser (which is sandboxed), you never have to worry that it doing anything nefarious on your computer.
- Zero-knowledge: Hypervault encryption is all client-side, so even if Hypervault's servers are compromised, your data is still safe.
 
- Easy
- No installations necessary, just run in the browser.
 
- Offline
- Since Hypervault is a self-contained .htmlfile, you save it to your desktop and run it offline.
 
- Since Hypervault is a self-contained 
- Always usable
- Since Hypervault packages itself with your encrypted data (in the form of a locked_vault.htmlfile, you can always decrypt your data, even if Hypervault goes away.
 
- Since Hypervault packages itself with your encrypted data (in the form of a 
- Image file previews
- Multiple file support
- Add more help to app (to make it more self-explanatory).
- Add "Download Hypervault Offline" button.
- iOS Support
- Android Support
- Text file preview
- Add "inline" texts, so users can create a hypervault with text without ever having to put that text in a file.
- Add some animations to clarify a few things.
- More unit tests.
- Clean up redundant CSS.
- Improve code style.
-  Remove FileSaver.jsdependency?
- Add compression (lzma?) to encrypted data?