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);