[Javascript] CryptoJS AES 128 암호화/복호화

[Javascript] CryptoJS AES 128 암호화/복호화

vue.js 에서 AES 128 암복호화를 하기 위해 CryptoJS 를 사용해보았다.

인터넷에서 찾은 흔한 예제들로 해보니 key 값과 iv 값이 계속 변경되는 현상이 있었다.

이 포스트에서는 key 값이 변경되지 않도록 암호화하는 예제를 정리해서 공유한다.

CryptoJS AES 128 암호화/복호화 (salt 키 없이 암호화/복호화)

const key = “aaaaaaaaaabbbbbb”;
const iv = “aaaaaaaaaabbbbbb”;

// CryptoJS AES 128 암호화
const keyutf = CryptoJS.enc.Utf8.parse(key);
const ivutf = CryptoJS.enc.Utf8.parse(iv);

var encObj = CryptoJS.AES.encrypt(this.message, keyutf, { iv: ivutf });
console.log(“key : “ + encObj.key.toString(CryptoJS.enc.Utf8));
console.log(“iv : “ + encObj.iv.toString(CryptoJS.enc.Utf8));
console.log(“salt : “ + encObj.salt);
console.log(“ciphertext : “ + encObj.ciphertext);

var encStr = encObj + “”;
console.log(“encStr : “ + encStr);

// CryptoJS AES 128 복호화
const decObj = CryptoJS.AES.decrypt({ ciphertext: CryptoJS.enc.Base64.parse(encStr) }, keyutf, { iv: ivutf });

const decStr = CryptoJS.enc.Utf8.stringify(decObj);
console.log(“decStr : “ + decStr);

결과

key : aaaaaaaaaabbbbbb

iv : aaaaaaaaaabbbbbb

salt : undefined

ciphertext : a01a8acf2a239460f98439ee148e75c1

encStr : oBqKzyojlGD5hDnuFI51wQ==

decStr : 1234

참고사이트 1 : https://jsfiddle.net/qwd035sk/45/