728x90

해시함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.

해시함수에 의해 얻어지는 값은 해시값, 해시코드, 해시 체크섬 또는 간단하게 해시라고 한다.


해시함수는 다음과 같은 특징이 존재한다.

다양한 가변길이의 입력에 적용될 수 있어야 하고, 고정된 길이의 출력을 생성하며, 해시 결과값으로 입력값을 계산하는 것은 불가능하다.

그리고 동일한 해시값을 갖는 서로 다른 메시지 쌍이 없다. 해시함수의 용도 중 하나는 ‘해시 테이블’이라는 ‘자료구조’에서 사용되며, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용된다.

해시함수는 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 올릴 수 있다.

예를 들어, DNA Sequence에서 유사한 패턴을 찾는 데 사용될 수도 있다. 또헌 암호학에서도 사용될 수 있다.

암호용 해시 함수는 매핑된 해싱값만을 알아서는 원래 입력값을 알아내기 힘들다는 사실에 의해 사용될 수 있다. 또한 전송된 데이터의 무결성을 확인해주는 데 사용되기도 하는데, 메시지가 누구에게서 온 것읹 입증해주는 HMAC를 구성하는 블록으로 사용된다.

해시함수는 결정론적으로(deterministic) 작동해야 하기에, 따라서 두 해시값이 다르다면 그 해시값에 대한 원래 데이터들도 달라야 한다(역은 성립하지 않는다).

해시함수의 질은 입력 영역에서의 해시충돌 확률로 걸정되는데, 해시 충돌의 확률이 높을 수록 서로 다른 데이터를 구별하기 어려워지고 검색하는 비용이 증가하게 된다.

==
curl -H
headfile download
md5 checksum 무결성 검증

https://ko.linux-console.net/?p=1891#google_vignette&gsc.tab=0

+ Recent posts