본문 바로가기

Javascript

node.js 에서 암호화 하기

반응형

// 함수를 이용한 암호화
const crypto = require('crypto');
function ENCRYPT(arg) {      //암호화하여 리턴
    const cipher = crypto.createCipher('aes-256-cbc', '사용할Key');
    let result = cipher.update(arg, 'utf8', 'base64');
    result += cipher.final('base64'); 
    return result;
}

function DECRYPT(arg) {       //복호화하여 리턴
    const decipher = crypto.createDecipher('aes-256-cbc', '사용할Key');
    let result = decipher.update(arg, 'base64', 'utf8'); // 암호화할문 (base64, utf8이 위의 cipher과 반대 순서입니다.)
    result += decipher.final('utf8'); // 암호화할문장 (여기도 base64대신 utf8)
    return result;
}

function isBase64(text) {         //암호화된 데이터인지 판단
    const regex = /^[A-Za-z0-9+/]+={0,2}$/;
    return regex.test(text);        //true:암호화데이터 false:일반데이터
}

console.log(isBase64('HbMtmFdroLU0arLpMflQYtt8xEf4lrPn5tX5k+a8Nzw='));    //true
console.log(isBase64('123456-789456'));                                                                //false
console.log(ENCRYPT("758252-3458796"));
console.log(DECRYPT(ENCRYPT("758252-3458796")));