encryption - node - ¿Encriptación y descifrado de cadenas de JavaScript?
javascript encryption framework (3)
¿Qué hay de CryptoJS ?
Es una biblioteca de criptografía sólida, con mucha funcionalidad. Implementa hashers, HMAC, PBKDF2 y cifrados. En este caso, las cifras son lo que necesitas. Consulte la guía rápida de inicio en la página de inicio del proyecto.
Podrías hacer algo como con el 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 cuanto a la seguridad, en el momento de escribir el algoritmo AES no se ha roto
Editar:
Parece que la URL en línea no funciona y puede usar los archivos descargados para el cifrado desde el enlace que aparece a continuación y colocar los archivos respectivos en su carpeta raíz de la aplicación.
https://code.google.com/archive/p/crypto-js/downloads
o usado otro CDN como https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/aes-min.js
Estoy interesado en crear una pequeña aplicación para uso personal que cifrará y descifrará información del lado del cliente mediante JavaScript. La información cifrada se almacenará en una base de datos en un servidor, pero nunca en la versión descifrada.
No tiene que ser súper seguro, pero me gustaría usar un algoritmo actualmente intacto.
Idealmente, podría hacer algo como
var gibberish = encrypt(string, salt, key);
para generar la cadena codificada, y algo así como
var sensical = decrypt(gibberish, key);
para decodificarlo más tarde.
Hasta ahora he visto esto: http://bitwiseshiftleft.github.io/sjcl/
¿Alguna otra biblioteca que debería ver?
CryptoJS ya no es compatible. Si desea continuar usándolo, puede cambiar a esta url:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
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>