I want to encrypt and decrypt string in javascript using following code.But i got crypto js is not defined.
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
<script src=".1.2/rollups/aes.js"></script>
I want to encrypt and decrypt string in javascript using following code.But i got crypto js is not defined.
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
<script src="https://cdnjs.cloudflare./ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
Share
Improve this question
edited May 21, 2018 at 12:57
Rory McCrossan
338k41 gold badges320 silver badges351 bronze badges
asked May 21, 2018 at 12:53
PRIYANKA MOREPRIYANKA MORE
571 gold badge1 silver badge6 bronze badges
4
- 2 Is the script tag for cryptojs before your javascript? – meyi Commented May 21, 2018 at 12:55
- you need to convert it to tostring – Ankita Commented May 21, 2018 at 12:57
- I placed your logic in a snippet where it appears to work (although the response appears to be objects not strings). Check to ensure you're including the crypto script in the page before you run your own logic. – Rory McCrossan Commented May 21, 2018 at 12:58
- You're not working with the responses from the method calls properly. See the AES section of the documentation about 2/3 of the way down this page: github./brix/crypto-js – Rory McCrossan Commented May 21, 2018 at 13:00
3 Answers
Reset to default 11Works fine for me.
JSFiddle: https://jsfiddle/xbk736br/
// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123');
// Decrypt
var bytes = CryptoJS.AES.decrypt(ciphertext.toString(), 'secret key 123');
var plaintext = bytes.toString(CryptoJS.enc.Utf8);
console.log(plaintext);
<script src="https://cdnjs.cloudflare./ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
If you are building a react or nodejs app, you can simply use this library ncrypt-js to encrypt and decrypt your data.
See example on codesandbox
usage:
es5
var ncrypt = require('ncrypt-js'); // or var { encrypt, decrypt } = require('ncrypt-js);
let encryptData = ncrypt.encrypt('super secret data', 'secret_key');
// or
// let encryptData = encrypt('super secret data', 'secret_key');
console.log(encryptData); // 11ab949601eb136f58ac3fe846e30d76.f9ce133b20adc35eef32af95957547abbb6fbfc5cb91cd14f5b0a088bd031883963cde1a56fd62fe2aeb75451a065d21
var decryptedData = ncrypt.decrypt(encryptData);
// or
// var decryptedData = decrypt(encryptData);
console.log(decryptedData); // super secret data
es6
import ncrypt from 'ncrypt-js'; // or import { encrypt, decrypt } from 'ncrypt-js';
const encryptData = ncrypt.encrypt('super secret data', 'secret_key');
// or
// const encryptData = encrypt('super secret data', 'secret_key');
console.log(encryptData); // 11ab949601eb136f58ac3fe846e30d76.f9ce133b20adc35eef32af95957547abbb6fbfc5cb91cd14f5b0a088bd031883963cde1a56fd62fe2aeb75451a065d21
const decryptedData = ncrypt.decrypt(encryptData);
// or
// const decryptedData = decrypt(encryptData);
console.log(decryptedData); // super secret data
encrypted.toString()
will return the correct string value.
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
alert(encrypted.toString());
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
<script src="https://cdnjs.cloudflare./ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>