블럭체인 설명을 보면 해쉬라는 말이 자주나오는데

개발자들에게는 익숙하겠지만...


해쉬 : 단방향 함수

 - 입력 값이 조금만 달라도 출력 값은 완전히 달라진다.

 - 출력 값이 다르면 입력 값이 다른 것.

 - 원본 데이터 사이즈보다 훨씬 작은 해쉬값만을 비교하여 원본 값이 달라졌는지를 판단 가능

 - 해쉬 값이 같다고 원본 값이 같다는 보장은 없다. but 대체로 같다.

 - 해쉬 값에서 원본 값을 뽑아내는 것은 불가능하다고 본다. 

    표준적인 해쉬 알고리즘을 사용하는 경우... 해쉬 값 테이블을 가지고 비교하면 원본 값을 찾을 수도 있다.

    방지를 위해서... 표준 해쉬 알고리즘을 약간 변형시켜 사용하면 된다. 



공격 예 : 

사용자 비밀번호를 DB에 MD5 알고리즘으로 해쉬화 해서 저장했다고 했을 때


공격자가 DB를 탈취하고


1111 => 1111의 해쉬 값

1112 => 1112의 해쉬 값

...

9999 => 9999의 해쉬 값


공격자는 DB에 저장된 해쉬값을 자신이 가지고 있는 테이블과 비교하여, 

일치하는 값을 찾으면 사용자의 비밀번호를 알아낼 수도 있다.

  


해쉬의 사용 예 : 

사용자의 비밀번호를 DB에 저장할 때

비밀번호를 직접 저장하면... 디비 털리면 사용자 비번 다 털리고

해쉬값을 저장하면 디비 털려도 사용자 비번은 털리지 않는다.

사용자가 비밀번호를 입력하면... 비밀번호를 해쉬화 하고... 

그 결과값을 디비에 저장된 해쉬화된 비밀번호와 비교

'IT > 블럭체인' 카테고리의 다른 글

이더리움 구입 가능 사이트  (0) 2018.01.16
이더리움 송금 수수료  (0) 2018.01.16
Dapp 만들기  (0) 2018.01.16
ICO가 뭐?  (0) 2018.01.16
Solidity 강좌  (0) 2018.01.15

+ Recent posts