본문 바로가기

Lecture

[지갑 만들기] 랜덤 키 값 만들기 (elliptic , secp256k1)

암호화폐의 지갑을 만들어 보려고 한다.

일단 최초 목표가 있는데

 

node server.js 를 할때 http://localhost:3000/address 에 요청을 하게 되면

1. node serever.js 가 실행되면 특정 폴더에 특정파일이 생성된다.

2. 개인키값을 보여줄것.

 

이 두가지 목표를 실행하려면 먼저 지갑의 개인 키 값을 만들어야 한다.

키 값을 만들때는 암호화를 사용하는데

회원가입을 할때 사용했던 sha256 암호화는 복호화가 안되는 단방향 암호화이다.

secp256k1 암호화의 개념은 0과 1을 랜덤하게 256번을 던져 그 값을 암호화 하는 것이다.

secp256k1을 사용하기 위해서 elliptic이라는 모듈을 설치해야 한다.

 

const ecdsa = require('elliptic');
const ec = ecdsa.ec('secp256k1');

 

elliptic 객체 안에 ec 함수로 secp256k1을 불러온다.

ec 안에 있는 genKeyPair()그 안에 getPrivate을 불러와 16진수 string값으로 만들고 toUpperCase로 정리해 줬다.

 

ec.genKeyPair().getPrivate().toString(16).toUpperCase()

 

 

다만 나는 암호를 랜덤하게 만들어 주는 함수를 만들 것 이기 때문에 함수안에 키값을 만드는 구문을 입력했다.

 

function generatorPrivateKey(){
    const KeyPair = ec.genKeyPair();
    const privateKey = KeyPair.getPrivate();
    return privateKey.toString(16).toUpperCase();
};

 

그럼 앞으로 함수를 실행 시킬 때마다 랜덤한 키값을 받을 수 있다.

'Lecture' 카테고리의 다른 글

shell 명령어  (0) 2021.09.09
개념모음  (0) 2021.09.09
맥 oh my zsh , powerlevel10k 설치 방법  (0) 2021.08.26
os 개념 [커널, 쉘]  (0) 2021.08.26
HTTP 요청 헤더  (0) 2021.08.19