EEALL@ONCE

🔦 해싱(Hashing)과 해시(Hash) 본문

분류없음지식🔦

🔦 해싱(Hashing)과 해시(Hash)

올엣원스 2024. 1. 3. 15:43
728x90
  1. 해시(Hash):
    • 해시는 데이터를 대표하는 고정된 길이의 값 또는 문자열입니다.
    • 이 값은 일반적으로 원본 데이터보다 훨씬 짧으며, 원본 데이터의 고유한 "지문"처럼 작동합니다.
    • 해시는 데이터의 무결성을 검증하거나, 데이터베이스 조회에서 키로 사용되는 등 다양한 목적으로 활용됩니다.
  2. 해싱(Hashing):
    • 해싱은 원본 데이터를 해시로 변환하는 과정 또는 그 방법을 지칭합니다.
    • 해싱은 해시 함수를 사용하여 수행되며, 이 함수는 원본 데이터를 받아 고유한 해시값을 생성합니다.
    • 해싱의 주요 목적은 데이터를 고유하고 효율적으로 식별하는 것이며, 이 과정은 보안, 데이터 저장, 검색 최적화 등에서 중요한 역할을 합니다.

해시와 해싱의 차이점은 간단히 말해, 해시는 "결과물"이고, 해싱은 그 결과물을 생성하는 "과정"입니다. 예를 들어, 특정 문서의 내용을 해시 함수로 처리하면, 그 결과로 나오는 고정된 길이의 문자열이 그 문서의 해시입니다. 이러한 처리 과정 자체가 해싱입니다.


해싱은 다양한 분야에서 중요한 역할을 합니다. 아래는 몇 가지 주요 사용 예시입니다:

  1. 보안 – 암호 저장:
    • 웹사이트나 애플리케이션에서 사용자의 비밀번호를 안전하게 저장하기 위해 해싱이 사용됩니다. 사용자가 비밀번호를 생성할 때, 이 비밀번호는 해시 함수를 통해 해시값으로 변환되어 저장됩니다.
    • 로그인 시, 사용자가 입력한 비밀번호도 같은 해시 함수로 해싱되고, 이 해시값이 저장된 값과 비교됩니다.
    • 이 방법은 실제 비밀번호를 어디에도 저장하지 않기 때문에 보안이 강화됩니다.
  2. 데이터 무결성 검증:
    • 파일이나 데이터가 전송 과정에서 손상되지 않았는지 확인하기 위해 해싱이 사용됩니다.
    • 예를 들어, 파일을 다운로드할 때, 제공되는 해시값을 사용하여 파일의 무결성을 검증할 수 있습니다. 다운로드한 파일의 해시값을 계산하고 이것이 원본 파일의 해시값과 일치하는지 확인합니다.
    • 이는 데이터가 전송 중에 변경되지 않았음을 보장합니다.
  3. 데이터베이스 최적화:
    • 해시 테이블은 데이터베이스에서 데이터를 효율적으로 관리하는 데 사용됩니다.
    • 해시 함수를 사용하여 각 항목의 키를 해시값으로 변환하고, 이 값을 사용하여 데이터를 저장하거나 검색합니다.
    • 해시 테이블은 데이터 검색을 매우 빠르게 만들어, 대규모 데이터베이스에서 성능을 크게 향상시킵니다.
  4. 데이터 효율적 식별:
    • 블록체인과 같은 분산된 시스템에서는 각 거래나 블록을 식별하기 위해 해싱이 사용됩니다.
    • 각 거래의 내용은 해시값으로 변환되며, 이 해시값은 블록의 고유한 식별자로 사용됩니다.
    • 블록체인의 보안성과 무결성은 이러한 해싱 메커니즘에 크게 의존합니다.

이러한 예시들에서 볼 수 있듯이, 해싱은 데이터의 보안, 무결성, 효율성을 향상시키는 데 중요한 역할을 합니다.


해싱은 마치 마술 상자와 같아요. 당신이 마술 상자에 무언가를 넣으면, 상자는 그것을 아주 작은 무언가로 바꿔요. 이 작은 무언가를 '해시'라고 해요. 마술 상자는 매번 똑같은 것을 넣으면 똑같은 작은 것을 만들어내지만, 조금이라도 다른 것을 넣으면 완전히 다른 작은 것을 만들어요.

이제 몇 가지 예를 들어볼게요:

  1. 비밀번호 지키기:
    • 컴퓨터나 핸드폰에서 비밀번호를 설정할 때, 이 마술 상자가 비밀번호를 작은 해시로 바꿔요. 그래서 컴퓨터는 당신의 진짜 비밀번호를 모르고, 해시만 알아요.
    • 당신이 비밀번호를 입력하면, 컴퓨터는 그걸 다시 해시로 만들어서, 처음 만들었던 해시와 같은지 확인해요. 이렇게 하면 누군가 당신의 비밀번호를 알아내려 해도 훨씬 어렵게 만들 수 있어요.
  2. 파일 확인하기:
    • 인터넷에서 파일을 다운로드할 때, 컴퓨터는 파일이 올바른지 확인하려고 해싱을 사용해요. 다운로드한 파일을 마술 상자에 넣으면, 해시가 나와요.
    • 이 해시를 원래 파일의 해시와 비교해요. 만약 해시가 같다면, 파일이 올바르게 다운로드된 거예요. 해시가 다르면, 파일이 잘못되었다는 뜻이에요.
  3. 빠르게 찾기:
    • 도서관에서 책을 찾을 때, 해싱은 책을 빨리 찾는 데 도움을 줘요. 마치 도서관에서 책의 제목을 해시로 바꾸어서 쉽게 찾을 수 있게 하는 것과 같아요.
    • 이렇게 하면 컴퓨터는 엄청 많은 책 중에서도 빨리 원하는 책을 찾을 수 있어요.

추가 ) 

컴퓨터나 웹사이트가 비밀번호를 작은 해시로 바꾸는 이유는 여러 가지가 있어요:

  1. 보안을 위해서: 컴퓨터나 웹사이트는 실제 비밀번호를 직접 저장하지 않아요. 대신, 비밀번호를 해시로 변환해서 저장해요. 이렇게 하면, 만약 누군가가 비밀번호를 저장한 곳을 뚫고 들어와도, 진짜 비밀번호를 알 수 없어요. 해시는 원래 비밀번호로 되돌릴 수 없거든요. 이렇게 해서, 당신의 비밀번호를 더 안전하게 지킬 수 있어요.
  2. 일관성 유지: 해시 함수는 언제나 같은 입력에 대해 같은 출력을 만들어내요. 이 말은, 당신이 비밀번호를 입력할 때마다 항상 같은 해시가 생성된다는 거예요. 그래서, 컴퓨터는 당신이 입력한 비밀번호의 해시와 저장된 해시를 비교해서 로그인을 허용할 수 있어요.
  3. 공간 절약: 해시는 언제나 일정한 크기를 가지고 있어요. 이 말은, 아무리 긴 비밀번호라도 해시는 같은 크기로 만들어진다는 거예요. 이렇게 하면, 저장 공간을 효율적으로 사용할 수 있어요.
728x90