Miklix

Fowler-Noll-Vo FNV1-64 해시 코드 계산기

게시됨: 2025년 2월 17일 오후 9시 34분 54초 UTC

Fowler-Noll-Vo 1 64비트(FNV1-64) 해시 함수를 사용하여 텍스트 입력이나 파일 업로드를 기반으로 해시 코드를 계산하는 해시 코드 계산기입니다.

이 페이지는 가능한 한 많은 사람이 이용할 수 있도록 영어에서 기계 번역되었습니다. 안타깝게도 기계 번역은 아직 완성된 기술이 아니므로 오류가 발생할 수 있습니다. 원하시는 경우 여기에서 영어 원문을 보실 수 있습니다:

Fowler-Noll-Vo FNV1-64 Hash Code Calculator

FNV-1 64비트 해시 함수는 Fowler–Noll–Vo(FNV) 해시 함수 패밀리의 일부로, 해시 값의 양호한 분포를 유지하면서 빠른 해싱을 위해 설계되었습니다. 해시 테이블, 체크섬, 데이터 조회와 같은 애플리케이션에서 일반적으로 사용됩니다. 64비트(8바이트) 해시 코드를 생성하며, 종종 16자리 16진수로 표현됩니다.

전체 공개: 이 페이지에서 사용된 해시 함수의 구체적인 구현은 제가 직접 작성하지 않았습니다. PHP 프로그래밍 언어에 포함된 표준 함수입니다. 편의를 위해 웹 인터페이스만 공개하여 여기에서 사용할 수 있도록 만들었습니다.


새 해시 코드 계산

이 양식을 통해 제출된 데이터 또는 업로드된 파일은 요청된 해시 코드를 생성하는 데 걸리는 기간 동안만 서버에 보관됩니다. 결과가 브라우저로 반환되기 전에 즉시 삭제됩니다.

데이터를 입력합니다:



제출된 텍스트는 UTF-8로 인코딩됩니다. 해시 함수는 이진 데이터에서 작동하므로 텍스트가 다른 인코딩으로 되어 있을 때와 결과가 달라집니다. 특정 인코딩으로 된 텍스트의 해시를 계산해야 하는 경우 대신 파일을 업로드해야 합니다.



Fowler-Noll-Vo FNV-1 64비트 해시 알고리즘에 대하여

저는 수학자는 아니지만, 수학을 모르는 동료들이 이해할 수 있는 비유를 사용하여 이 해시 함수를 설명하려고 노력할 것입니다. 과학적으로 정확하고 무서운 수학적 설명을 선호한다면, 다른 곳에서 찾을 수 있을 거라고 확신합니다 ;-)

먼저, FNV-1 알고리즘을 특별한 스무디를 만드는 레시피처럼 생각해 보겠습니다. 추가하는 각 재료(과일, 우유 또는 꿀 등)는 문자, 숫자 또는 전체 파일과 같은 데이터 조각을 나타냅니다.

이제 목표는 이러한 재료를 매우 특정한 방식으로 섞어서 레시피의 아주 작은 변화(블루베리 하나 더 추가)만으로도 스무디의 맛이 완전히 달라지게 하는 것입니다. 이것이 해시 함수가 작동하는 방식입니다. 해시 함수는 모든 고유한 재료 세트(또는 입력 데이터)에 대해 고유한 "맛"(또는 해시 값)을 만듭니다.

FNV-1 알고리즘이 이를 수행하는 방식은 여러 단계로 구성된 프로세스입니다.

1단계: 기준(오프셋 기준)으로 시작

이것을 블렌더에 특별한 스무디 베이스를 붓는 것과 같다고 생각하세요. 이 베이스는 어떤 재료를 추가하든 항상 동일합니다. FNV-1에서 이것을 "오프셋 베이스"라고 합니다. 그저 멋진 시작 번호일 뿐입니다.

2단계: 재료를 하나씩 추가합니다(데이터 처리)

이제 재료를 하나씩 추가하기 시작합니다. 딸기, 바나나, 꿀이라고 합시다. 각각은 데이터 바이트를 나타냅니다.

3단계: 비밀 멀티플라이어(FNV Prime)로 블렌딩

각 재료를 넣은 후 블렌드 버튼을 누르지만, 여기에 반전이 있습니다. 블렌더는 모든 것을 FNV 프라임이라는 비밀 "매직 넘버"로 곱합니다. 이것은 정말 잘 섞이는 데 도움이 됩니다.

4단계: 마법의 한 방울 추가(XOR 연산)

다음 재료를 넣기 전에 약간의 마법의 가루를 뿌립니다(이것이 XOR 연산입니다). 예상치 못한 방식으로 맛을 뒤집는 것과 같으며, 작은 변화라도 큰 차이를 만들어냅니다.

5단계: 완료될 때까지 반복

새로운 재료가 들어올 때마다 계속해서 섞고 마법을 뿌려 모든 것을 처리할 때까지 반복합니다.

6단계: 최종 스무디(해시 값)

다 마쳤으면 스무디를 부어줍니다. 최종 맛(해시 값)은 그 재료의 정확한 조합에 따라 고유합니다. 블루베리를 하나 더 넣었다면 완전히 다른 맛이 났을 겁니다.

여기에 제시된 버전은 원래 FNV-1 64비트 버전입니다. 개선된 FNV-1a 64비트 버전도 있습니다: Fowler-Noll-Vo FNV1a-64 해시 코드 계산기

블루스카이에서 공유하기페이스북에서 공유하기LinkedIn에서 공유하기Tumblr에 공유하기X에서 공유LinkedIn에서 공유하기Pinterest에 고정

미켈 방 크리스텐슨

저자 소개

미켈 방 크리스텐슨
남자 이름은 miklix.com의 창시자이자 소유자입니다. 전문 컴퓨터 프로그래머/소프트웨어 개발자로 20년 이상 경력을 쌓았으며 현재 유럽의 대형 IT 기업에서 정규직으로 근무하고 있습니다. 블로그를 운영하지 않을 때는 여가 시간을 다양한 관심사, 취미, 활동으로 보내며 이 웹사이트에서 다루는 다양한 주제에 어느 정도 반영되어 있습니다.