AES-256
by brigand
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://rawgit.com/victornpb/f639f37373be0f6e82e1/raw/5d8f7ee8b32ae04de087d2377d8086e3389ee411/AES.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
JavaScript
const SECRET = '394812730425442A472D4B6150645367566B93849123867639792F423F452848';
const SECRET_BUF = new ArrayBuffer(SECRET.length / 2);
SECRET.replace(/../g, (c, i) => {
SECRET_BUF[i / 1] = parseInt(c, 16)
})
function enc(plainText) {
var b64 = CryptoJS.AES.encrypt(plainText, SECRET_BUF).toString();
var e64 = CryptoJS.enc.Base64.parse(b64);
var eHex = e64.toString(CryptoJS.enc.Hex);
console.log("b64::", b64);
console.log("e64::", e64);
console.log("eHex::", eHex);
return eHex;
}
function dec(cipherText) {
var reb64 = CryptoJS.enc.Hex.parse(cipherText);
var bytes = reb64.toString(CryptoJS.enc.Base64);
var decrypt = CryptoJS.AES.decrypt(bytes, SECRET);
var plain = decrypt.toString(CryptoJS.enc.Utf8);
console.log("reb64::", reb64);
console.log("bytes::", bytes);
console.log("decrypt::", decrypt);
console.log("plain::", plain);
return plain;
}
encoded = enc("SECRET SAUCE!");
decoded = dec(encoded);