해시 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
'''해시'''(hash)란 다양한 길이를 가진 [[데이터]]를 고정된 길이를 가진 데이터로 [[매핑]](mapping)한 값이다. 이를 이용해 특정한 배열의 인덱스나 위치나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾을 수 있다. 기존에 사용했던 자료 구조들은 탐색이나 삽입에 선형시간이 걸리기도 했던것에 비해, 해시를 이용하면 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있으므로 더욱 빠른 속도로 처리할 수 있다. '''해시값'''이라고도 한다. '해쉬'가 아니라 '해시'가 올바른 표기법이다. 중국어로는 '''하시'''(哈希, 합희, {{발음|hā xī}})라고 한다. 해시는 암호학에 있어서 매우 중요한 요소이며, [[블록체인]](blockchain)을 구현하기 위한 핵심 기술이다.
+
'''해시'''(hash)란 다양한 길이를 가진 [[데이터]]를 고정된 길이를 가진 데이터로 [[매핑]](mapping)한 값이다. 중국어로는 '''하시'''(哈希, 합희, {{발음|hā xī}})라고 한다. 이를 이용해 특정한 배열의 인덱스나 위치나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾을 수 있다. 기존에 사용했던 자료 구조들은 탐색이나 삽입에 선형시간이 걸리기도 했던것에 비해, 해시를 이용하면 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있으므로 더욱 빠른 속도로 처리할 수 있다. '''해시값'''이라고도 한다. '해쉬'가 아니라 '해시'가 올바른 표기법이다. 해시는 암호학에 있어서 매우 중요한 요소이며, [[블록체인]](blockchain)을 구현하기 위한 핵심 기술이다.  
  
 
== 특징 ==
 
== 특징 ==
28번째 줄: 28번째 줄:
  
 
=== 해싱 ===
 
=== 해싱 ===
[[해싱]](hashing)이란 해시함수를 사용하여 주어진 값을 변환한 뒤, 해시 테이블에 저장하고 검색하는 기법을 말한다. 해싱에 사용되는 [[자료구조]]는 [[배열]](array)과 [[연결리스트]](linked list)가 조합된 형태이다. 짧은 해시 키를 사용하여 항목을 찾으면, 원래의 값을 이용하여 찾는 것보다 더 빠르기 때문에, 해싱은 [[데이터베이스]] 내의 항목들을 색인하고 검색하는데 사용된다. <ref>Vangie Beal, 〈[https://www.webopedia.com/TERM/H/hashing.html hashing]〉, 《웨보피디아》</ref> 해싱은 데이터들을 저장하거나 찾을 때 인덱스(index)라는 또다른 데이터 스트럭쳐를 이용하는 대신, 각 데이터들이 테이블의 어느 영역에 위치할 것인가를 결정해주는 해시함수를 사용하여 일정한 시간 내에 데이터들을 효과적으로 찾을 수 있도록 해주는 것이다. 따라서 데이터들은 순차적으로 저장되는 것이 아니라 테이블 전 영역에 걸쳐서 골고루 분포하게 되며, 저장된 데이터를 찾을 때에도 해시함수를 사용하면 곧바로 그 위치를 알아내는 것이 가능하기 때문에 매우 빠른 속도로 데이터를 검색할 수가 있게 된다. <ref>Omnis, 〈[https://omnis.tistory.com/entry/Hashing-%EC%9D%B4%EB%9E%80 Hashing 이란?]〉, 《티스토리》, 2012-04-09</ref>
+
[[해싱]](hashing)이란 해시함수를 사용하여 주어진 값을 변환한 뒤, 해시 테이블에 저장하고 검색하는 기법을 말한다. 해싱에 사용되는 [[자료구조]]는 [[배열]](array)과 [[연결 리스트]](linked list)가 조합된 형태이다. 짧은 해시 키를 사용하여 항목을 찾으면, 원래의 값을 이용하여 찾는 것보다 더 빠르기 때문에, 해싱은 [[데이터베이스]] 내의 항목들을 색인하고 검색하는데 사용된다. <ref>Vangie Beal, 〈[https://www.webopedia.com/TERM/H/hashing.html hashing]〉, 《웨보피디아》</ref> 해싱은 데이터들을 저장하거나 찾을 때 인덱스(index)라는 또다른 데이터 스트럭쳐를 이용하는 대신, 각 데이터들이 테이블의 어느 영역에 위치할 것인가를 결정해주는 해시함수를 사용하여 일정한 시간 내에 데이터들을 효과적으로 찾을 수 있도록 해주는 것이다. 따라서 데이터들은 순차적으로 저장되는 것이 아니라 테이블 전 영역에 걸쳐서 골고루 분포하게 되며, 저장된 데이터를 찾을 때에도 해시함수를 사용하면 곧바로 그 위치를 알아내는 것이 가능하기 때문에 매우 빠른 속도로 데이터를 검색할 수가 있게 된다. <ref>Omnis, 〈[https://omnis.tistory.com/entry/Hashing-%EC%9D%B4%EB%9E%80 Hashing 이란?]〉, 《티스토리》, 2012-04-09</ref>
  
 
== 해시 방법 ==
 
== 해시 방법 ==
91번째 줄: 91번째 줄:
 
기수변환법은 어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방법으로, 어떤 키 값이 16진법으로 표현되어 있다면 이를 10진법으로 표현된 것으로 간주하고 키 값을 변환하여 해당 레코드의 홈 주소를 구한다. 해시 테이블의 크기가 10의 멱승으로 표현되어 변환된 해당 레코드의 주소 값이 테이블의 크기를 초과할 때는 주소 값의 최하위 자리부터 해시 테이블의 크기가 허용하는 멱승수만큼 취하여 해당 레코드의 홈 주소로 사용한다.
 
기수변환법은 어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방법으로, 어떤 키 값이 16진법으로 표현되어 있다면 이를 10진법으로 표현된 것으로 간주하고 키 값을 변환하여 해당 레코드의 홈 주소를 구한다. 해시 테이블의 크기가 10의 멱승으로 표현되어 변환된 해당 레코드의 주소 값이 테이블의 크기를 초과할 때는 주소 값의 최하위 자리부터 해시 테이블의 크기가 허용하는 멱승수만큼 취하여 해당 레코드의 홈 주소로 사용한다.
 
  예) 해시 테이블의 크기 = 100000
 
  예) 해시 테이블의 크기 = 100000
  십진수로 입력된 키 값(132548) 10을 16진수로 간주하여 그 값을 다시 10진수로 계산하는 기수 변환법을 이용하여 홈 주소를 구하시오.
+
  십진수로 입력된 키 값(B2538) 10을 16진수로 간주하여 그 값을 다시 10진수로 계산하는 기수 변환법을 이용하여 홈 주소를 구하시오.
 
  <math>(1*16^{5})+(3*16^{4})+(2*16^{3})+(5*16^{2})+(4*16^{1})+(8*16^{0}) </math> <br> <math> = 1048576+196608+8192+1280+64+8=(1254728)_{10}</math>
 
  <math>(1*16^{5})+(3*16^{4})+(2*16^{3})+(5*16^{2})+(4*16^{1})+(8*16^{0}) </math> <br> <math> = 1048576+196608+8192+1280+64+8=(1254728)_{10}</math>
 
  홈 주소 = 4728(레코드의 주소값에서 해시 테이블이 허용하는 하위 4자리를 선택한다)
 
  홈 주소 = 4728(레코드의 주소값에서 해시 테이블이 허용하는 하위 4자리를 선택한다)
103번째 줄: 103번째 줄:
 
== 해시라는 단어가 포함된 회사명 ==
 
== 해시라는 단어가 포함된 회사명 ==
 
{{로고블록100
 
{{로고블록100
|해시넷||해시드||해시캐시||에듀해시||헤데라 해시그래프|헤데라<br>해시그래프|해시가드||해시캐피탈||해시플레어||나이스해시|<!--|맥스해시|-->|희망해시|<!--|해시래빗|-->|해시쉐어|<!--|해시시티|-->|해시래빗||해시볼트||해시팟||해시피시||해시쿼크||해시허브||}}
+
|해시넷||해시드||해시캐시||에듀해시||헤데라 해시그래프|헤데라<br>해시그래프|해시가드||해시캐피탈||해시플레어||나이스해시|<!--|맥스해시|-->|희망해시|<!--|해시래빗|-->|해시쉐어|<!--|해시시티|-->|해시팟||해시피시||해시허브||}}
  
 
회사명에 '해시'(hash)라는 단어를 사용한 사례는 다음과 같다.
 
회사명에 '해시'(hash)라는 단어를 사용한 사례는 다음과 같다.
142번째 줄: 142번째 줄:
 
{{블록체인 기술|검토 필요}}
 
{{블록체인 기술|검토 필요}}
 
{{암호 알고리즘}}
 
{{암호 알고리즘}}
{{데이터}}
 
  
 
[[분류:블록체인]]
 
[[분류:블록체인]]
 
[[분류:알고리즘]]
 
[[분류:알고리즘]]
 
[[분류:암호학]]
 
[[분류:암호학]]

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)