JavaScript字符串加密和解密?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (249)

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

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

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

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

生成编码的字符串,等等

var sensical = decrypt(gibberish, key);

稍后解码。

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

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

提问于
用户回答回答于

CryptoJS怎么

这是一个可靠的加密库,具有很多功能。它实现了哈希,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>

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

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

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

或者使用其他CDN,如https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/aes-min.js

用户回答回答于

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="https://cdnjs.cloudflare.com/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>

扫码关注云+社区

领取腾讯云代金券