Cryptage et décryptage des chaînes JavaScript?

Je suis intéressé par la création d'une petite application à des fins personnelles qui chiffreront et décrypteront des informations côté client en utilisant JavaScript. Les informations chiffrées seront stockées dans une base de données sur un serveur, mais jamais la version déchiffrée.

Il ne doit pas être super doux sécurisé, mais j'aimerais utiliser un algorithme actuellement ininterrompu.

Idéalement, je pourrais faire quelque chose comme

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

Pour générer la chaîne codée, et quelque chose comme

 var sensical = decrypt(gibberish, key); 

Pour décoder plus tard.

Jusqu'à présent, j'ai vu ceci: http://crypto.stanford.edu/sjcl/

D'autres bibliothèques que je devrais regarder?

  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> 

Que diriez-vous de CryptoJS ?

C'est une bibliothèque cryptographique solide, avec beaucoup de fonctionnalités. Il implémente les hachis, HMAC, PBKDF2 et les chiffres. Dans ce cas, les chiffres sont ce dont vous avez besoin. Découvrez la démarrage rapide de la page d'accueil du projet.

Vous pouvez faire quelque chose comme avec l'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> 

En ce qui concerne la sécurité, au moment où mon algorithme écrit AES est pensé être ininterrompue

Modifier :

On dirait que l'URL en ligne est en panne et que vous pouvez utiliser les fichiers téléchargés pour le cryptage à partir du lien ci-dessous et placez les fichiers respectifs dans votre dossier racine de l'application.

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

Ou utilisé d'autres CDN comme https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/aes-min.js