Nodejs/암호화 2

암호화#2 - JWT

1. Intro 지난 글에 이어서 JWT (JSON Web Token)에 대해 알아보자. 지금까지 배운 로그인 방식에는 세션과 쿠키가 있다. 서버는 부담을 줄이기 위해 세션 정보를 쿠키에 담아 브라우저에 전달하고, 브라우저는 이 쿠키를 요청마다 제시함으로써 허용된 사용자라는 것을 증명한다. 그런데 문제는 여기서 쿠키가 조작이 가능하다는 것이다. 이걸 아무나 위조해서 들고다니는 것을 막기 위해 전 글에서 배운 해시가 사용된다. 구체적으로 어떤 식으로 그 일이 일어나는지 직접 코드를 작성하며 알아보자. 2. JWT (JSON Web Token) 2.1 header, payload encoding 이름에서도 대강 짐작할 수 있는 것 처럼 웹에서 사용하는 토큰인데, JSON 형태이다. 이를 메소드를 통해 문자열..

Nodejs/암호화 2022.03.02

암호화 #1 - Buffer, hash

1. Intro 우리가 어떤 웹 페이지에 정보를 입력할 때, 비밀번호 등의 민감한 정보는 아무나 볼 수 없도록 암호화해 저장할 필요가 있다. 이런 암호화 방식에는 단방향 암호화, 양방향 암호화가 있는데 보통은 단방향 암호화 방식을 많이 사용한다. 단방향 암호화는 복호화할 수 없는 암호화 방식을 의미하는데, 이는 한 번 암호화하면 다시 원래 문자열을 찾을 수 없다는 것을 의미한다. 그래서 요즘엔 비밀번호를 잊어버려서 찾으려하면 비밀번호를 알려주지 않고 새로운 비밀번호를 설정하는 식으로 이를 해결하는 것이다. 이런 단방향 암호화는 주로 해시 기법을 사용한다. 해시 기법이란, 주어진 문자열을 다른 문자열로 바꾸는 방식이다. 오늘은 이 해시 기법을 사용하는 방식에 대해 알아볼텐데, 그 전에 알아야할 배경지식을 ..

Nodejs/암호화 2022.03.02