See [here](https://cdnjs.com/libraries/crypto-js) ## Example You can choose only what you need. ```html ... ``` ```javascript const enc = (passphrase,plaintext,iterations=2048) => { const salt = CryptoJS.lib.WordArray.random(256) const iv = CryptoJS.lib.WordArray.random(16) const key = CryptoJS.PBKDF2(passphrase, salt, { hasher: CryptoJS.algo.SHA512, keySize: 64/8, iterations}) const encrypted = CryptoJS.AES.encrypt(plaintext, key, { iv }) const ciphertext = encrypted.toString() const obj = { ciphertext, salt: salt.toString(CryptoJS.enc.Hex), iv: iv.toString(CryptoJS.enc.Hex), iterations } return obj } const decrypt = (passphrase,obj) => { const { ciphertext, iterations } = obj const salt = CryptoJS.enc.Hex.parse(obj.salt) const iv = CryptoJS.enc.Hex.parse(obj.iv) const key = CryptoJS.PBKDF2(passphrase, salt, { hasher: CryptoJS.algo.SHA512, keySize: 64/8, iterations}) const decrypted = CryptoJS.AES.decrypt(ciphertext, key, { iv }) return decrypted.toString(CryptoJS.enc.Utf8) } ```