Node.js/crypto

    [node.js] crypto를 이용한 Django 패스워드 저장방식 PBKDF2 알고리즘 구현하기

    구현하게 된 이유 현재 API서버는 Django로 만들어진 서버를 이용해 사용자의 아이디와 패드워드를 저장하고 있었다. 하지만 Django API서버의 기능 전부를 Node.js로 전환을 하고 있었다. 그러기 위해서는 Node.js의 사용자 패스워드 저장방식과 패스워드 검증 방식이 Django와 같은 방식으로 구현해야했다. 만약 다른 방식으로 패스워드 저장과 검증을 하게된다면 DB에 저장되어 있는 기존의 사용자의 패스워드를 사용할 수 없기 때문이다. 오늘은 Django 패스워드 저장방식(PBKDF2)과 검증방식을 Node.js로 구현하고자 한다. Django가 패스워드를 생성하는 방법 공식문서에 따르면 Django의 패스워드는 기본적으로 PBKDF2 알고리즘을 사용하여 아래와 같은 형태로 저장이 된다. ..

    [node.js] crypto RSA 공개키 알고리즘 구현 예제

    1. RSA 암호 알고리즘이란? Rivet, Shamir, Adelman 세사람의 첫이름을 따 RSA라고 만든 암호 알고리즘을 보고자 한다. RSA 암호 체계는 미국 MIT에서 개발한 공개키 암호 시스템이다. 이 암호 알고리즘의 핵심은 큰 정수의 소인수 분해가 어렵다는 점을 이용하여 암호화를 시킨다. 이러한 RSA 암호 알고리즘은 전자상거래에서 가장 흔히 쓰고있는 공개키 알고리즘이다. 2. RSA 암호 알고리즘 방식 1. A가 B에게 정보를 안전하게 보내고 싶어한다. 이때 RSA 알고리즘을 이용하고자 한다. 2. B가 공개키와 개인키를 만들어 A에게 공개키를 보낸다. (개인키는 B만 가지고 있다.) 3. A가 B로부터 받은 공개키를 이용하여 보낼 정보를 암호화한다. 4. A가 암호화된 정보를 B에게 보낸..