블록체인에서 해시 함수가 하는 역할은 암호화이며 해시값 비교를 통해서 위변조 여부를 판별, 무결성 검증에 사용
비트코인의 블록체인에 사용된 해시 함수는 SHA(Secure Hash Algorithm)-256 해시 함수
1. 단방향
ABCD 입력 -> s1rw2ww2k1gf12bc04fvc12nzw2 (O)
s1rw2ww2k1gf12bc04fvc12nzw2 입력 -> ABCD (X)
2. 한 글자만 달라져도 완전히 다른 값
AB 입력 -> e152zwqetyqwe1weffw12zgw26shqw
AC 입력 -> ke16w2pwe123zymxnew102sm21z6
ABAC 입력 -> o1sw124n7sk5jbdk23jn21j6nh2w
사용자의 pw처럼 안전하게 저장되어야 하는 정보의 경우
Salting 작업으로 보다 안전하게 정보를 저장할 수 있다.
소금을 친다는 의미로 사용자의 pw와 salt 값을 합치고 그 값을 해싱한다.
해싱된 값과 salt 값을 사용자 테이블에 같이 저장해놓고 레인보우 테이블을 무력화 시키는 것이다.
내 암호 : 12345678
내 암호의 해시값 : q512me21l236xqw561236612
생성된 salt 값 : 9syl0
내 암호 + 생성된 salt 값 : 123456789syl0
내 암호 + 생성된 salt 값의 해시값 : s92m21stw160sq22nfswr2fsqw2
사용자 테이블에 salt 값인 9syl0와 해시값 s92m21stw160sq22nfswr2fsqw2이 저장되어 있다면
나는 로그인할 때 내 암호 12345678를 입력할 것이고
테이블에 저장되어 있는 값인 salt 값 9syl0이 내 암호와 합쳐져 해싱된 후
s92m21stw160sq22nfswr2fsqw2와 일치한다면 정상적으로 로그인 되는 것이다.
'Block Chain' 카테고리의 다른 글
[Block Chain] Java 실습-3 (0) | 2022.12.21 |
---|---|
[Block Chain] Java 실습-2 (0) | 2022.12.21 |
[Block Chain] Java 실습-1 (0) | 2022.12.19 |
[Block Chain] 암호화폐 (0) | 2022.12.01 |
[Block Chain] 쉽게 이해하기 (0) | 2022.11.30 |