[태그:] node

  • [Node]_암호화_설정

    Node.js에서 데이터 암호화(Encryption) 쉽게 구현하기 💡

    데이터 전송 시 암호화 요청이 많아지는 요즘, Node.js에서 crypto-js를 이용한 데이터 암호화 방법을 정리했음.


    📦 1. crypto-js 설치 및 준비

    crypto-js는 JavaScript에서 데이터를 암호화하는 데 사용되는 라이브러리임.

    • 설치 명령어:
      npm i -d crypto-js

    • TypeScript 사용 시 추가 설치:
      npm i --save-dev @types/crypto-js


    🔑 2. 암호화/복호화 모듈 설정

    crypto-js를 활용하여 암호화 및 복호화 기능을 담당하는 모듈을 구성했음.

    "use strict";
    
    let CryptoJS = require("crypto-js");
    let encryptMode = true; // 암호화 모드 활성화 여부
    
    // 데이터 암호화 함수
    exports.encrypt = (text) => {
      if (encryptMode) {
        return CryptoJS.AES.encrypt(text, global.encryptionKey).toString();
      } else {
        return text;
      }
    };
    
    // 데이터 복호화 함수
    exports.decrypt = (value) => {
      if (encryptMode) {
        return CryptoJS.AES.decrypt(value, global.encryptionKey).toString(CryptoJS.enc.Utf8);
      } else {
        return value;
      }
    };
    • global.encryptionKey: 암호화에 사용될 키 값. 이 키는 보안상 안전하게 관리해야 함.
    • encryptMode: 암호화 기능을 활성화/비활성화하는 플래그.

    🔒 3. 데이터 암호화 적용

    위에서 설정한 모듈을 불러와 실제 데이터를 암호화하는 예시임.

    const crypto = require("./crypto"); // 위에서 작성한 암호화 모듈 불러오기
    
    // 암호화할 데이터
    const originalData = "암호화할 데이터";
    
    // 데이터 암호화
    const encryptedData = crypto.encrypt(originalData);
    console.log("암호화된 데이터:", encryptedData);
    
    // 데이터 복호화
    const decryptedData = crypto.decrypt(encryptedData);
    console.log("복호화된 데이터:", decryptedData);

    이 코드를 통해 데이터를 안전하게 암호화하고 복호화할 수 있음. Node.js 백엔드에서 특정 데이터를 암호화하고, 프론트엔드(Angular 등)에서는 암호화된 데이터를 복호화하여 사용자에게 제대로 출력되도록 활용할 수 있음.