I'm developing a JQuery web app that will be executed locally from a DVD. The app will read all the contents of a JSON file.

Is there a good way to encrypt or obfuscate the JSON content so that only the app can read it?


If all you want is to prevent them from copying and pasting into something else, you could store it in BSON instead of JSON. http://bsonspec.org/#/specification

Now that only OBFUSCATES it, and will not prevent a knowledgeable person from using it if they want to.

You could also encrypt it, but you still have a similar issue as you would be storing the decrypt key inside the javascript that loads the encrypted Json.

Anyone that really wants your data is going to be able to get it. Most browser have javascript debuggers that will let you extract, or view the data at runtime.

So it mostly comes down to how much effort you want to put into making your data difficult to get at. A significantly motivated person with get at your data no matter what you do.


If you're only able to use JavaScript (no script-engine, like php), this library may be useful: http://code.google.com/p/crypto-js/


How about this: https://github.com/HazAT/jCryption ? It uses RSA for the key exchange and AES for the encryption.


I would suggest using JSON Web Encryption (JWE).

There are a lot of libraries that can handle it, including browser's web apis has the crypto api that can encrypt.