CRC-32B 해시 코드 계산기
게시됨: 2025년 2월 17일 오후 6시 26분 11초 UTC
CRC-32B(Cyclic Redundancy Check 32 bit, B 변형) 해시 함수를 사용하여 텍스트 입력이나 파일 업로드를 기반으로 해시 코드를 계산하는 해시 코드 계산기입니다.CRC-32B Hash Code Calculator
순환 중복 검사(CRC)는 원시 데이터의 우발적 변경을 감지하는 데 일반적으로 사용되는 오류 감지 코드입니다. 기술적으로 암호화 해시 함수는 아니지만 CRC-32는 가변 길이 입력에서 고정 크기 출력(32비트)을 생성할 수 있기 때문에 종종 해시라고 합니다. 이 페이지에 제시된 버전은 CRC-32B 변형으로, 실제로는 비트를 뒤집는(원래 CRC-32의 리틀 엔디언 대 빅 엔디언) PHP 언어의 기발한 특징일 뿐입니다.
전체 공개: 이 페이지에서 사용된 해시 함수의 구체적인 구현은 제가 직접 작성하지 않았습니다. PHP 프로그래밍 언어에 포함된 표준 함수입니다. 편의를 위해 웹 인터페이스만 공개하여 여기에서 사용할 수 있도록 만들었습니다.
CRC-32B 해시 알고리즘에 대하여
저는 수학자는 아니지만, 이 해시 함수를 간단한 비유로 설명하려고 노력할 겁니다. 많은 암호화 해시 함수와 달리, 특별히 복잡한 알고리즘은 아니므로 아마 괜찮을 겁니다 ;-)
우편으로 편지를 보내고 있다고 상상해 보세요. 하지만 수신자에게 도착하기 전에 손상될까 봐 걱정됩니다. 편지의 내용을 기반으로 CRC-32 체크섬을 계산하여 봉투에 적습니다. 수신자가 편지를 받으면 체크섬을 계산하여 작성한 내용과 일치하는지 확인할 수 있습니다. 일치하면 편지가 손상되거나 도중에 변경되지 않았습니다.
CRC-32가 이를 수행하는 방식은 4단계 프로세스입니다.
1단계: 추가 공간(패딩) 추가
- CRC는 메시지의 끝부분에 약간의 여유 공간을 추가합니다(땅콩을 상자에 포장하는 것과 같습니다).
- 이를 통해 오류를 더 쉽게 발견할 수 있습니다.
2단계: 마법의 통치자(다항식)
- CRC-32는 특수한 "매직 룰러"를 사용하여 데이터를 측정합니다.
- 이 자를 울퉁불퉁한 면과 홈의 패턴처럼 생각해 보세요(이것이 다항식이지만, 그 단어에 대해 걱정하지 마세요).
- CRC-32에서 가장 흔한 "눈금자"는 고정된 패턴입니다.
3단계: 눈금자 밀기(나누기 과정)
- 이제 CRC가 메시지 위로 자를 움직입니다.
- 각 지점에서 융기와 홈이 일치하는지 확인합니다.
- 일치하지 않으면 CRC가 메모를 작성합니다(이것은 스위치를 켜거나 끄는 것처럼 간단한 XOR을 사용하여 수행됩니다).
- 끝에 도달할 때까지 계속 스위치를 밀고 뒤집습니다.
4단계: 최종 결과(체크섬)
- 메시지 전체에 걸쳐 눈금자를 움직이면 원본 데이터를 나타내는 작은 숫자(32비트 길이)가 남습니다.
- 이 번호는 메시지의 고유한 지문과 같습니다.
- 이것은 CRC-32 체크섬입니다.
이 페이지에 제시된 버전은 CRC-32B 변형으로, 주로 비트 순서를 바꾸는 PHP 엉뚱한 짓입니다(리틀 엔디언 대 빅 엔디언). 이 버전은 그것을 사용하는 다른 PHP 애플리케이션과의 호환성이 특별히 필요한 경우에만 사용해야 할 것입니다.
다른 변형에 대한 계산기도 있습니다.