私は、JavaScript を使用してクライアント側で情報を暗号化および復号化する個人用の小さなアプリを構築することに興味があります。暗号化された情報はサーバー上のデータベースに保存されますが、復号化されたバージョンは保存されません。
超安全である必要はありませんが、現在破られていないアルゴリズムを使用したいと思います。
理想的には、次のようなことができるでしょう
var gibberish = encrypt(string, salt, key);
エンコードされた文字列を生成するには、次のようなものを使用します。
var sensical = decrypt(gibberish, key);
後でデコードします。
これまでに見たのは次のものです: http://bitwiseshiftleft.github.io/sjcl/
他に注目すべきライブラリはありますか?
ベストアンサー1
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" integrity="sha256-/H4YS+7aYb9kJ5OKhFYPUjSJdrtV6AeyJOtTkw6X72o=" crossorigin="anonymous"></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>