자바스크립트에서 CryptoJS 라이브러리를 사용하여 AES256 방식으로 데이터를 암호화하기 위한 함수는 다음과 같습니다.
encodeByAES56(key, data){ const cipher = CryptoJS.AES.encrypt(data, CryptoJS.enc.Utf8.parse(key), { iv: CryptoJS.enc.Utf8.parse(""), padding: CryptoJS.pad.Pkcs7, mode: CryptoJS.mode.CBC }); return cipher.toString(); }
위의 함수를 사용하는 예는 다음과 같구요.
const k = "key"; const rk = k.padEnd(32, " "); // AES256은 key 길이가 32자여야 함 const b = "암호화는 보안을 위해 매우 중요합니다."; const eb = this.encodeByAES56(rk, b); console.log(eb);
출력 결과는 다음과 같습니다.
mXK9nlcT70QdTjKgzxAD99zS4UYah0OZI8GFT8Pg+Vu3GFmF/HPmlV0PA/sUy7rr4+2Sh319ZEIz2TlyiPWcvw==
암호화된 위의 문자열을 복호화하는 함수는 다음과 같습니다.
decodeByAES256(key, data){ const cipher = CryptoJS.AES.decrypt(data, CryptoJS.enc.Utf8.parse(key), { iv: CryptoJS.enc.Utf8.parse(""), padding: CryptoJS.pad.Pkcs7, mode: CryptoJS.mode.CBC }); return cipher.toString(CryptoJS.enc.Utf8); };
위의 함수를 사용하는 예는 다음과 같구요.
const k = "key"; // 암호화에서 사용한 값과 동일하게 해야함 const rk = k.padEnd(32, " "); // AES256은 key 길이가 32자여야 함 const eb = "mXK9nlcT70QdTjKgzxAD99zS4UYah0OZI8GFT8Pg+Vu3GFmF/HPmlV0PA/sUy7rr4+2Sh319ZEIz2TlyiPWcvw=="; const b = this.decodeByAES56(rk, eb); console.log(b);
실행 결과는 다음과 같습니다.
암호화는 보안을 위해 매우 중요합니다.