자바스크립트로 블록체인 구현 강좌5 - 나만의 비트코인 발행하기


이번 포스팅에서는 sha256 해시생성기와 npm을 이용해서 sha256 모듈을 설치해서 사용해보도록하겠다.

일단.

sha256 은 암호화 알고리즘의 하나이다. 음..엄청쉽게 말해서 '어떤 입력값이든 고정된 길이의 임의의 문자열값으로 출력한다' 라고 알고 있으면 쉽다.

예를 들면 abc 값을 sha256 알고리즘에 넣고 돌리면

BA7816BF8F 01CFEA4141 40DE5DAE22 23B00361A3 96177A9CB4 10FF61F200 15AD

이값이 생성이된다. 길이를 보자.

abcdef를 넣으면?

BEF57EC7F5 3A6D40BEB6 40A780A639 C83BC29AC8 A9816F1FC6 C5C6DCD93C 4721

같은 길이의 임의의값이 출력이 된다.

 

https://passwordsgenerator.net/sha256-hash-generator

이곳에 들어가서 직접 값을 넣어봐도 된다.


그리고 한번 암호화 한건 다시 되돌리기 힘들다는 것이다. 어려운 말로 복호화가 어렵다고 하는데 그냥 아 한번 암호화 해버리면 다시 원래 값으로 되돌리기가 거의 빌게이츠가 삼와머니에서 돈빌릴 확률 보다 낮다고만 알아두자.


그러면 계속해서 코드를 작성해보자. 이번에는 인자값을 받으면 그것을 이용해서 암호화 한다음 리턴해주는 함수를 작성해보도록 한다. 


1.구글에서 npm sha256 모듈 검색 후 다운로드 하기

https://www.npmjs.com/package/sha256 여기 들어가면 npm i sha256 --save 이렇게 생긴 녀석을 볼 수 있다


2.터미널 열고 자신의 개발폴더(blockchain)로 가서 위의 명령어를 쳐준다.



3.확인해보기


3.모듈을 변수에 할당

blockchain.js 맨위에 작성

//sha256 모듈을 가져다 쓰겠다.
const sha256 = require('sha256');



4.Blockchain.prototype 함수들 이어서 맨아래 작성

//해쉬 값 리턴 함수
Blockchain.prototype.hashBlock = function(previousBlockHash,currentBlockData,nonce){
const dataAsString = previousBlockHash + nonce.toString() + JSON.stringify(currentBlockData);
const hash = sha256(dataAsString);
return hash
}


다음 포스팅에서 작성한 해쉬함수를 어떻게 사용하는지 테스트 해보도록하자.





+ Recent posts

티스토리 툴바