ryan > 암호화 > 'abc'라는 해시를 만들었을 때 웹 상에는 ryan이라는 정보는 존재하지 않고 abc라는 정보만으로 비교 확인하기 때문에 안전하다.
암호화 에제
const crypto = require('crypto');
console.log(crypto.createHash('sha512').update('password(비밀번호').digest('base64'));
대칭형 암호화
암호화를 통해 생성된 key를 통해 암호화-복호화 작업을 진행한다.
백엔드와 달리 프론트단에서는 누구나 개발자 도구를 통해 내부 정보를 확인할 수 있음.
서버에서 보내준 암호화해준 무언가를 프론트에서 해독하려면 key를 노출시켜야 됨. 프론트와 서버관계에서는 같은 키를 사용하는 알고리즘은 지양해야됨
crypto.createCipheriv를 통해 사용할 수 있지만, 조금 더 간편한 방법으로 crypto.js API를 사용 권장
: 각종 편의 기능을 모아둔 모듈
const dontUse = util.deprecated((x, y) => {
return x + y;
}, 'dontuse는 deprecated되었으니 사용하지 마세요');
const funcA = util.promisify(crypto.funcA); // 콜백함수를 감싸줌
funcA(1)
.then((x) => {
console.log(x);
})
.catch((err) => {
console.error(err);
});