Crypto-js v3 JavaScript crypto library:
Example:
<script type="text/javascript" src="js/aes.js"></script>
<script type="text/javascript" src="js/pbkdf2.js"></script>
<script type="text/javascript" src="js/mode-cfb.js"></script>
<script type="text/javascript" src="js/mode-ctr.js"></script>
<script type="text/javascript" src="js/mode-ecb.js"></script>
<script type="text/javascript" src="js/mode-ofb.js"></script>
<script type="text/javascript" src="js/pad-ansix923.js"></script>
<script type="text/javascript" src="js/pad-iso10126.js"></script>
<script type="text/javascript" src="js/pad-iso97971.js"></script>
<script type="text/javascript" src="js/pad-nopadding.js"></script>
<script type="text/javascript" src="js/pad-zeropadding.js"></script>
<script type="text/javascript">
var options = { mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 };
/*** encrypt */
var json = CryptoJS.AES.encrypt("plaintext", "Secret Passphrase", options);
var ciphertext = json.ciphertext.toString(CryptoJS.enc.Base64);
/*** decrypt */
var decrypted = CryptoJS.AES.decrypt(json, "Secret Passphrase", options);
var plaintext = decrypted.toString(CryptoJS.enc.Utf8);
</script>
The modes of operation currently available are:
- CBC (the default)
- CFB
- CTR
- OFB
- ECB
And the padding schemes currently available are:
- Pkcs7 (the default)
- Iso97971
- AnsiX923
- Iso10126
- ZeroPadding
- NoPadding