암호화
// 모듈을 추출한다.
var crypto = require('crypto');
// 변수를 선언한다.
var key = '아무도 알지 못하는 나만의 비밀 키';
var input = 'PASSWORD';
//암호화
var cipher = crypto.createCipher('aes192', key);
// utf8 양식의 데이터를 위 암호화 알고리즘을 이용하여
// base64비트의 형태로 표현을 하겠다는 의미. = cipher.update('암호화할데이터', 양식의 데이터, 표현방법)
cipher.update(input, 'utf8', 'base64');
var cipheredOutput = cipher.final('base64');
//암호화 해제
var decipher = crypto.createDecipher('aes192', key);
decipher.update(cipheredOutput, 'base64', 'utf8');
var decipheredOutput = decipher.final('utf8');
// 출력
console.log(`원래 문자열 : ${input}`);
console.log(`암호화 : ${cipheredOutput}`);
console.log(`암호화 해제 : ${decipheredOutput}`);
이해가 안된다면 여기를 보면 이해를 할 수 있다.
Crypro 모듈
getCiphers
: 지원하는 암호화 알고리즘 이름들을 반환
createCipher
: 암호화용 객체를 생성
createDecipher
: 복호화용 객체를 생성
update
: 데이터를 암호화 하거나 복호화
final
: 암호화된 데이터에 마지막 종료 블럭을 추가
암호화는 복호화 순서를 반대로 하면되고 마찬가지로 복호화는 암호화 순서를 반대로 해주면 된다.