성장에 목마른 코린이

[Node.js] CryptoJS (설치, 암호화 방식, 사용) 본문

Javascript/Node.js

[Node.js] CryptoJS (설치, 암호화 방식, 사용)

성장하는 코린이 2022. 11. 16. 19:35
728x90

CryptoJS

Javascript에서 해시 함수를 통해 여러가지 정보(ex. 비밀번호)를 안전하게 암호화를 할 수 있도록 해주는 Node.js 패키지입니다.

CryptoJS 설치

npm i -d crypto-js
npm i --save-dev @types/crypto-js

CryptoJS 암호화 방식

  1. 대칭키 (Symmetric Encryption) : 암호화 - 복호화 할 때 같은 키값을 이용
  2. 비대칭키 (Asymmetric Encryption) : 암호화 - 복호화 할 때 다른 키값을 이용
  3. 해싱 (hashing) : 단방향으로 암호화만 가능하고 복호화 할 수 없다. 비밀번호 등에 이용.
알고리즘 종류 비고
대칭키 DES, 3-DES, AES(128bit, 256bit), SEED, ARIA AES가 가장 보편적으로 이용
비대칭키 RSA, ECC, DSS
해싱 MD5, SHA-0, SHA-1, SHA-2

CryptoJS 사용

// crypto-js 모듈 불러오기
import crypto-js from 'crypto-js'

// 암호화 할 데이터
const data = {
    username:'Jinho Kim',
    age: 25
};

// 복호화 키 지정
const privateKey =  'secret key';

// AES알고리즘 사용 암호화
const encrypted = CryptoJS.AES.encrypt(JSON.stringify(data), secretKey).toString();

// AES알고리즘 사용 복호화 ( 복구 키 필요 )
const bytes = CryptoJS.AES.decrypt(encrypted, secretKey);

// 인코딩, 문자열로 변환, JSON 변환
const decrypted = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
Comments