해시(Hash)

Dec 13, 2023
해시(Hash)

1. Hash란?

 
Hash는 16진수로 이루어진 임의의 난수이다.
 
💡
16진수 : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
 
예를 들어 ‘안녕’ 을 해시함수에 입력 했을 때 AB3F7D 라는 값이 나왔다.
‘안녕’ 이라는 값은 여러번 입력 해도 똑같은 AB3F7D 이 나온다.
단, 복호화는 불가능. 즉, AB3F7D 을 가지고 다시 ‘안녕’ 으로 원복은 불가능한 단방향 함수이다.
 
💡
Hash의 특징 1. hash함수는 같은 값을 입력하면 항상 동일한 값이 나온다. 2. 복호화는 불가능한 단방향 함수. 단 값을 기억하고 있다면 찾을 수 있다. 3. 임의의 길이의 값을 입력해도 항상 동일한 길이의 hash 값이 나온다.
 

2. Hash는 왜 사용할까?

 
무엇을 Hash함수 입력해도 항상 동일한 ‘길이’ 가 나온다.
 
hash함수는 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 고정된 길이의 데이터로 변환한다.
 
이를 이용하면, 짧은 단어를 해시해도, 두꺼운 책을 해시도 동일한 길이가 나온다.
 
예를 들어 A 라는 책을 해시 해서 A37B751C4D 라는 값이 나왔다고 가정했을 때,
 
책에서 단어 하나만 변경해도 다른 해시 값이 나오게 된다.
 
💡
이런 특성을 활용해서 전자 서명, 진위 여부 등을 확인 할 수 있다.
 
또 사이트의 회원을 관리할 때, 아이디는 서버에 저장할 수 있지만 비밀번호는 관리자도 확인이 불가능해야 한다.
 
💡
해시는 복호화 불가능 하기 때문에 사이트의 회원가입을 할 때 비밀번호를 저장하는 값으로 해시 값을 이용한다.
Share article

{CODE-RYU};