[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/