JavaScriptstringencryption和解密?

我有兴趣构build一个个人使用的小应用程序,使用JavaScript来encryption和解密客户端的信息。 encryption的信息将被存储在服务器上的数据库中,但不会被解密的版本。

它不必是超级安全的,但我想使用一个目前不间断的algorithm。

理想情况下,我可以做类似的事情

var gibberish = encrypt(string, salt, key); 

生成编码的string,等等

 var sensical = decrypt(gibberish, key); 

稍后解码。

到目前为止,我已经看到这个: http : //bitwiseshiftleft.github.io/sjcl/

我应该看的任何其他图书馆?

  var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase"); //U2FsdGVkX18ZUVvShFSES21qHsQEqZXMxQ9zgHy+bu0= var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase"); //4d657373616765 document.getElementById("demo1").innerHTML = encrypted; document.getElementById("demo2").innerHTML = decrypted; document.getElementById("demo3").innerHTML = decrypted.toString(CryptoJS.enc.Utf8); 
 Full working sample actually is: <script src="ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script> <br><br> <label>encrypted</label> <div id="demo1"></div> <br> <label>decrypted</label> <div id="demo2"></div> <br> <label>Actual Message</label> <div id="demo3"></div> 

CryptoJS怎么样 ?

这是一个坚实的encryption库,有很多function。 它实现了哈希,HMAC,PBKDF2和密码。 在这种情况下,密码是你所需要的。 查看项目主页上的快速入门指南。

你可以用AES做一些事情:

 <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script> <script> var encryptedAES = CryptoJS.AES.encrypt("Message", "My Secret Passphrase"); var decryptedBytes = CryptoJS.AES.decrypt(encryptedAES, "My Secret Passphrase"); var plaintext = decryptedBytes.toString(CryptoJS.enc.Utf8); </script> 

至于安全性,在我写作的那一刻,AESalgorithm被认为是不间断的

编辑:

似乎在线URL已closures,您可以使用下载的文件进行encryption,从下面给出的链接,并将相应的文件放在应用程序的根文件夹中。

https://code.google.com/archive/p/crypto-js/downloads

或使用其他CDN,如ajax/libs/crypto-js/3.1.2/components/aes-min.js