/ PROGRAMING, PYTHON

Hash

해시 Hash

기본적으로 ChatGPT를 이용하여 틀을 잡고 만든 것

해시란

  • 일반적으로 빠른 데이터 검색을 위해 사용되는 데이터 구조로 많이 사용
  • 해시는 키-값 쌍으로 데이터를 저장
    • 각 키에 대해 고유한 해시 코드를 생성하여 데이터를 저장하고 검색
    • 이를 통해 매우 빠른 검색 시간을 달성
  • 문자열 검색, 문자열 비교, 중복 항목 찾기 및 빈번한 항목 찾기와 같은 일부 문제에 사용
  • 해시 테이블은 배열과 같은 데이터 구조로 구현
    • 배열의 인덱스를 계산하기 위해 해시 함수가 사용
    • 키를 입력으로 받아 해시 코드를 반환
    • 일반적으로 입력 키의 각 문자의 아스키 코드 값을 합산한 후, 배열의 크기로 나눈 나머지 값을 해시 코드로 사용
  • 해시 충돌은 서로 다른 두 입력 키에 대해 동일한 해시 코드가 생성되는 경우
    • 해결하기 위해 해시 충돌 해결 기법 중 하나는 해시 버킷(Bucket) 을 사용
    • 해시 버킷은 각각의 인덱스에 대해 연결 리스트와 같은 구조
    • 충돌이 발생한 경우 같은 버킷에 연결 리스트를 추가하여 다른 입력 키와의 충돌을 방지
  • 암호학적 해시(cryptographic hash)가 사용
    • 보안무결성 검사를 위해 사용
    • 입력 메시지의 고유한 고정 크기 출력 값을 생성
    • 이러한 함수는 해시 테이블에서 사용되는 일반적인 해시 함수와는 다름

참조 영상

python 예제