EEALL@ONCE
🔦 해싱(Hashing)과 해시(Hash) 본문
728x90
- 해시(Hash):
- 해시는 데이터를 대표하는 고정된 길이의 값 또는 문자열입니다.
- 이 값은 일반적으로 원본 데이터보다 훨씬 짧으며, 원본 데이터의 고유한 "지문"처럼 작동합니다.
- 해시는 데이터의 무결성을 검증하거나, 데이터베이스 조회에서 키로 사용되는 등 다양한 목적으로 활용됩니다.
- 해싱(Hashing):
- 해싱은 원본 데이터를 해시로 변환하는 과정 또는 그 방법을 지칭합니다.
- 해싱은 해시 함수를 사용하여 수행되며, 이 함수는 원본 데이터를 받아 고유한 해시값을 생성합니다.
- 해싱의 주요 목적은 데이터를 고유하고 효율적으로 식별하는 것이며, 이 과정은 보안, 데이터 저장, 검색 최적화 등에서 중요한 역할을 합니다.
해시와 해싱의 차이점은 간단히 말해, 해시는 "결과물"이고, 해싱은 그 결과물을 생성하는 "과정"입니다. 예를 들어, 특정 문서의 내용을 해시 함수로 처리하면, 그 결과로 나오는 고정된 길이의 문자열이 그 문서의 해시입니다. 이러한 처리 과정 자체가 해싱입니다.
해싱은 다양한 분야에서 중요한 역할을 합니다. 아래는 몇 가지 주요 사용 예시입니다:
- 보안 – 암호 저장:
- 웹사이트나 애플리케이션에서 사용자의 비밀번호를 안전하게 저장하기 위해 해싱이 사용됩니다. 사용자가 비밀번호를 생성할 때, 이 비밀번호는 해시 함수를 통해 해시값으로 변환되어 저장됩니다.
- 로그인 시, 사용자가 입력한 비밀번호도 같은 해시 함수로 해싱되고, 이 해시값이 저장된 값과 비교됩니다.
- 이 방법은 실제 비밀번호를 어디에도 저장하지 않기 때문에 보안이 강화됩니다.
- 데이터 무결성 검증:
- 파일이나 데이터가 전송 과정에서 손상되지 않았는지 확인하기 위해 해싱이 사용됩니다.
- 예를 들어, 파일을 다운로드할 때, 제공되는 해시값을 사용하여 파일의 무결성을 검증할 수 있습니다. 다운로드한 파일의 해시값을 계산하고 이것이 원본 파일의 해시값과 일치하는지 확인합니다.
- 이는 데이터가 전송 중에 변경되지 않았음을 보장합니다.
- 데이터베이스 최적화:
- 해시 테이블은 데이터베이스에서 데이터를 효율적으로 관리하는 데 사용됩니다.
- 해시 함수를 사용하여 각 항목의 키를 해시값으로 변환하고, 이 값을 사용하여 데이터를 저장하거나 검색합니다.
- 해시 테이블은 데이터 검색을 매우 빠르게 만들어, 대규모 데이터베이스에서 성능을 크게 향상시킵니다.
- 데이터 효율적 식별:
- 블록체인과 같은 분산된 시스템에서는 각 거래나 블록을 식별하기 위해 해싱이 사용됩니다.
- 각 거래의 내용은 해시값으로 변환되며, 이 해시값은 블록의 고유한 식별자로 사용됩니다.
- 블록체인의 보안성과 무결성은 이러한 해싱 메커니즘에 크게 의존합니다.
이러한 예시들에서 볼 수 있듯이, 해싱은 데이터의 보안, 무결성, 효율성을 향상시키는 데 중요한 역할을 합니다.
해싱은 마치 마술 상자와 같아요. 당신이 마술 상자에 무언가를 넣으면, 상자는 그것을 아주 작은 무언가로 바꿔요. 이 작은 무언가를 '해시'라고 해요. 마술 상자는 매번 똑같은 것을 넣으면 똑같은 작은 것을 만들어내지만, 조금이라도 다른 것을 넣으면 완전히 다른 작은 것을 만들어요.
이제 몇 가지 예를 들어볼게요:
- 비밀번호 지키기:
- 컴퓨터나 핸드폰에서 비밀번호를 설정할 때, 이 마술 상자가 비밀번호를 작은 해시로 바꿔요. 그래서 컴퓨터는 당신의 진짜 비밀번호를 모르고, 해시만 알아요.
- 당신이 비밀번호를 입력하면, 컴퓨터는 그걸 다시 해시로 만들어서, 처음 만들었던 해시와 같은지 확인해요. 이렇게 하면 누군가 당신의 비밀번호를 알아내려 해도 훨씬 어렵게 만들 수 있어요.
- 파일 확인하기:
- 인터넷에서 파일을 다운로드할 때, 컴퓨터는 파일이 올바른지 확인하려고 해싱을 사용해요. 다운로드한 파일을 마술 상자에 넣으면, 해시가 나와요.
- 이 해시를 원래 파일의 해시와 비교해요. 만약 해시가 같다면, 파일이 올바르게 다운로드된 거예요. 해시가 다르면, 파일이 잘못되었다는 뜻이에요.
- 빠르게 찾기:
- 도서관에서 책을 찾을 때, 해싱은 책을 빨리 찾는 데 도움을 줘요. 마치 도서관에서 책의 제목을 해시로 바꾸어서 쉽게 찾을 수 있게 하는 것과 같아요.
- 이렇게 하면 컴퓨터는 엄청 많은 책 중에서도 빨리 원하는 책을 찾을 수 있어요.
추가 )
컴퓨터나 웹사이트가 비밀번호를 작은 해시로 바꾸는 이유는 여러 가지가 있어요:
- 보안을 위해서: 컴퓨터나 웹사이트는 실제 비밀번호를 직접 저장하지 않아요. 대신, 비밀번호를 해시로 변환해서 저장해요. 이렇게 하면, 만약 누군가가 비밀번호를 저장한 곳을 뚫고 들어와도, 진짜 비밀번호를 알 수 없어요. 해시는 원래 비밀번호로 되돌릴 수 없거든요. 이렇게 해서, 당신의 비밀번호를 더 안전하게 지킬 수 있어요.
- 일관성 유지: 해시 함수는 언제나 같은 입력에 대해 같은 출력을 만들어내요. 이 말은, 당신이 비밀번호를 입력할 때마다 항상 같은 해시가 생성된다는 거예요. 그래서, 컴퓨터는 당신이 입력한 비밀번호의 해시와 저장된 해시를 비교해서 로그인을 허용할 수 있어요.
- 공간 절약: 해시는 언제나 일정한 크기를 가지고 있어요. 이 말은, 아무리 긴 비밀번호라도 해시는 같은 크기로 만들어진다는 거예요. 이렇게 하면, 저장 공간을 효율적으로 사용할 수 있어요.
728x90
'분류없음지식🔦' 카테고리의 다른 글
🔦스레드(Thread)가 뭔데? (0) | 2024.01.03 |
---|---|
🔦LOMBOK 라이브러리 어노테이션 : @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder,@Data (0) | 2024.01.03 |
🔦 네트워크 주소와 호스트 주소 차이가 뭐야? (1) | 2024.01.02 |
🔦 TCP/IP 4계층 모델 과 OSI 7계층 모델의 차이에 대한 귀동냥(Feat.애완개발자) (0) | 2023.12.29 |
🔦L7 스위치와 L4 스위치가 뭔데? (1) | 2023.12.28 |