One drawback of this approach is that you cannot write encrypted data to a local file because of cross site domain restrictions. You can workaround this by entering the data in the input field of the Encrypt tab and encrypt it. At this point you can access the JSONP data. You can then select the JSONP data and cut-n-paste it into your file.
There are two ways to input data for encryption and decryption. You can input the data manually by typing or using cut-n-paste or you can upload a JSONP file.
Entering the data manually is a little bit tricky. You have to select the Decrypt or Encrypt tab and click the . When the input text area appears, click on the button.
The button initiates the asynchronous load of a JSONP file. The Loaded checkbox indicates when the file has been successfully uploaded. It is read-only which means that it can only be changed internally.
The Password text box is where you type in the password that you want to use to encrypt or decrypt the file. It is the master password that controls access to your data. Make it strong! When the Plaintext checkbox is checked, the password is displayed in plaintext. It makes it easier to check long, complex passwords.
The control section has the button that runs the encryption/decryption algorithm using the input data and the password.
The on the Encrypt tab page encrypts the input data using the password.
The on the Decrypt tab page encrypts the input data using the password.
The show fields are checkboxes that when checked cause text data to be displayed.
The Hash displays the password hash (SHA-256).
The Input displays the input data.
The Output displays the output or generated data.
The core, prefix and suffix fields are fixed fields which means that there are no permutations associated with it. When the Transliteration is checked, it translates characters like o ("oh") to 0 (zero). It only translates the first occurrence of each one. When the Swap is checked, it does a pairwise swap of the characters. If there is an odd number of characters, a character is appended to make it even.
It also uses the HTML5 compatibility library: http://html5boilerplate.com/
In addition it makes extensive use of the jquery and jquery-ui libraries.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.