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 |