본문 바로가기

컴퓨터/NodeJS

NodeJS crypto 암호화 복호화

1. 모듈 설치

  crypto 모듈은 내장 모듈이기에 따로 설치할 필요가 없다.

2. 모듈 추출

const CRYPTO = require("crypto");

3. 단방향

1 const PASSWORD = "암호화할 문자열";
2 const SALT = CRYPTO.randomBytes(64).toString("base64");
3 const HASHEDPW = CRYPTO.pbkdf2Sync(PASSWORD, SALT, 9999, 64, "sha512").toString("base64");

2: 임의의 문자열을 64의 길이인 base64의 형식으로 생성한다.

3: PASSWORD에 SALT를 덧붙여 sha512 방식으로 9999번 반복해서 64의 길이인 base64의 형식으로 변환한다.

결과를 저장할 때는 HASHEDPW와 SALT를 같이 저장해둬야 나중에 재성생해서 비교할 수 있다.

4. 양방향

const ALGORITHM = "aes-256-cbc";
const KEY = "01234567890123456789012345678912"; //32길이의 임의의 문자열
const IV = "0123456789012345" //16길이의 임의의 문자열

//암호화
const CIPHER = CRYPTO.createCipheriv(ALGORITHM, KEY, IV);
let encrypt = CIPHER.update("암호화할 문자열", "utf8", "base64");
encrypt += CIPHER.final("base64");

//복호화
const DECIPHER = CRYPTO.createDecipheriv(ALGORITHM, KEY,IV);
let decrypt = DECIPHER.update(encrypt, "base64", "utf8");
decrypt += DECIPHER.final("utf8");

 

'컴퓨터 > NodeJS' 카테고리의 다른 글

NodeJS ejs-locals  (0) 2023.05.24
Nodejs nodemon  (0) 2023.04.28
NodeJS cors  (0) 2022.07.06
NodeJS npm mysql2  (0) 2022.05.15
NodeJS networkInterfaces 로컬 네트워크 정보  (0) 2022.05.14