CRC 계산기: CRC-8·CRC-16·CRC-64·Modbus
3~64비트의 모든 CRC를 계산합니다. Modbus·CCITT·XMODEM·CRC-64/XZ 등 112개 카탈로그 프리셋이나 직접 정한 매개변수로 계산하고, 어떤 CRC가 그 값을 내는지도 찾습니다.
입력 9바이트.
이 매개변수의 check 값("123456789"의 CRC): 0x4B37
이 입력에 대한 카탈로그 CRC 112개 전체
| CRC | 값 |
|---|---|
| 0x4 | |
| 0x6 | |
CRC-4/ITU | 0x7 |
| 0xB | |
CRC-5/EPC | 0x00 |
CRC-5/ITU | 0x07 |
| 0x19 | |
| 0x0D | |
| 0x3B | |
| 0x26 | |
CRC-6/ITU | 0x06 |
| 0x13 | |
CRC-7 | 0x75 |
| 0x53 | |
| 0x61 | |
| 0xDF | |
| 0x26 | |
| 0xDA | |
| 0x15 | |
| 0xBC | |
| 0x37 | |
| 0x94 | |
| 0xB4 | |
CRC-8/ITU | 0xA1 |
| 0x7E | |
| 0xEA | |
CRC-8/MAXIM, DOW-CRC | 0xA1 |
| 0x99 | |
| 0xF7 | |
| 0x3E | |
| 0xD0 | |
| 0x4B | |
CRC-8 | 0xF4 |
CRC-8/AES, CRC-8/EBU | 0x97 |
| 0x25 | |
CRC-10, CRC-10/I-610 | 0x199 |
| 0x233 | |
| 0x12A | |
CRC-11 | 0x5A3 |
| 0x061 | |
| 0xD4D | |
X-CRC-12 | 0xF5B |
| 0xB34 | |
CRC-12/3GPP | 0xDAF |
| 0x04FA | |
| 0x082D | |
| 0x30AE | |
CRC-15 | 0x059E |
| 0x2566 | |
ARC, CRC-16, CRC-16/LHA, CRC-IBM | 0xBB3D |
| 0x4C06 | |
| 0xAEE7 | |
| 0x9ECF | |
R-CRC-16 | 0x007E |
X-CRC-16 | 0x007F |
| 0xEA82 | |
| 0xC2B7 | |
CRC-16/DARC, CRC-16/EPC, CRC-16/EPC-C1G2, CRC-16/I-CODE | 0xD64E |
| 0xCE3C | |
CRC-16/CCITT-FALSE, CRC-16/AUTOSAR | 0x29B1 |
CRC-16/X-25, CRC-16/ISO-HDLC, CRC-16/ISO-IEC-14443-3-B, CRC-B | 0x906E |
CRC-A | 0xBF05 |
CRC-16/CCITT, CRC-16/CCITT-TRUE, CRC-16/V-41-LSB | 0x2189 |
| 0xBDF4 | |
| 0x772B | |
CRC-16/MAXIM | 0x44C2 |
| 0x6F91 | |
MODBUS | 0x4B37 |
| 0xA066 | |
| 0x5D38 | |
| 0x20FE | |
CRC-16/IEC-61158-2 | 0xA819 |
| 0x63D0 | |
CRC-16/AUG-CCITT | 0xE5CC |
| 0xD0DB | |
| 0x0FB3 | |
| 0x26B1 | |
CRC-16/BUYPASS, CRC-16/VERIFONE | 0xFEE8 |
| 0xB4C8 | |
XMODEM, ZMODEM, CRC-16/ACORN, CRC-16/LTE, CRC-16/V-41-MSB | 0x31C3 |
| 0x04F03 | |
| 0x0ED841 | |
| 0xC25A56 | |
| 0x7979BD | |
| 0x1F23B8 | |
| 0xB4F3E6 | |
| 0xCDE703 | |
| 0x23EF52 | |
CRC-24 | 0x21CF02 |
| 0x200FA5 | |
| 0x04C34ABF | |
| 0x0CE9E46C | |
CRC-32Q | 0x3010BF7F |
| 0x1697D06A | |
CRC-32D | 0x87315576 |
CRC-32/AAL5, CRC-32/DECT-B, B-CRC-32 | 0xFC891918 |
| 0x6EC2EDC4 | |
CKSUM, CRC-32/POSIX | 0x765E7680 |
CRC-32C, CRC-32/CASTAGNOLI, CRC-32/INTERLAKEN | 0xE3069283 |
CRC-32, CRC-32/ADCCP, CRC-32/V-42, CRC-32/XZ, PKZIP | 0xCBF43926 |
JAMCRC | 0x340BC6D9 |
| 0xD2C22F51 | |
| 0x0376E6E7 | |
XFER | 0xBD0BE338 |
| 0xD4164FC646 | |
CRC-64 | 0x6C40DF5F0B497347 |
| 0xB90956C775A41001 | |
| 0x75D4B74F024ECEEA | |
| 0xAE8B14860A799888 | |
| 0xE9C6D914C4B8D9CA | |
| 0x62EC59E3F1A4F00A | |
CRC-64/GO-ECMA | 0x995DC9BBDF1939FA |
crccheck, 비트 단위 참조 모델, 카탈로그 check 값으로 확인했습니다. 모두 브라우저에서 실행됩니다.
사용법
- 데이터를 텍스트나 hex 바이트로 입력하거나 파일을 고릅니다.
- 목록(폭별로 묶임)에서 CRC를 고르거나 폭·다항식·초깃값·최종 XOR·반사 설정을 직접 입력합니다. check 값으로 직접 정한 매개변수를 데이터시트와 대조할 수 있습니다.
- 미지의 CRC를 찾으려면 표 아래 검색칸에 관측한 값을 입력합니다. 그 값을 내는 카탈로그 CRC만 남습니다.
자세한 설명
펼치기접기
CRC는 폭, 다항식, 초깃값, 입력 바이트 반사 여부, 결과 반사 여부, 최종 XOR의 여섯 값으로 완전히 정해지며, 이 계산기는 1~64비트 폭에서 그 어떤 조합이든 받습니다. 또한 Greg Cook의 reveng 카탈로그에 실린 64비트 이하 CRC 112개를 카탈로그 이름과 흔한 별칭으로 모두 담고 있어 CRC-16/MODBUS, CRC-16/CCITT-FALSE(IBM-3740), XMODEM, KERMIT, X-25, CRC-8/MAXIM, CRC-32/MPEG-2, CRC-32C, CRC-64/XZ를 한 번에 고를 수 있습니다. 입력은 UTF-8 텍스트, hex 바이트, 최대 64 MB 파일입니다. 결과는 hex·10진수·2진수로, 바이트 단위 폭이면 두 바이트 순서로도 보여 줍니다. 예를 들어 Modbus RTU는 CRC의 하위 바이트를 먼저 보내므로 0x4B37은 37 4B로 전송됩니다. 또한 ASCII 문자열 123456789의 CRC, 즉 데이터시트와 카탈로그가 인용하는 check 값을 항상 표시하므로 직접 정한 설정을 문서와 대조해 볼 수 있습니다. 아래 표는 같은 입력에 대해 카탈로그의 모든 CRC를 계산하며, 관측한 값을 입력하면 그 값을 내는 프리셋만 남깁니다(바이트 순서가 뒤바뀐 일치 포함). 다만 값 하나로 미지의 CRC를 확정하기는 어렵습니다. 16비트 CRC는 프리셋마다 약 65,536분의 1 확률로 우연히 일치하므로 두 번째 메시지로 확인하세요. 메시지는 바이트 단위이며, 8의 배수가 아닌 비트 수에 대한 CRC와 82비트 CRC-82/DARC는 지원하지 않습니다. CRC는 우발적 오류를 잡는 용도일 뿐 보안 수단이 아닙니다. 데이터를 바꾼 뒤 누구나 다시 계산할 수 있습니다.
자주 묻는 질문
Modbus CRC의 바이트가 뒤집혀 나오는 이유는?
텍스트 123456789의 CRC-16/MODBUS는 0x4B37이지만 Modbus RTU는 하위 바이트를 먼저 보내므로 프레임은 37 4B로 끝납니다. 리틀엔디언 행이 전송 순서의 바이트를 보여 주며, 프레임에서 읽은 두 바이트를 그 순서대로 검색하면 바이트 순서가 바뀐 일치로 표시됩니다.
CCITT-FALSE, KERMIT, XMODEM, X-25의 차이는?
넷 다 다항식 0x1021을 쓰지만 초깃값·반사·최종 XOR이 다릅니다. XMODEM은 0에서 시작하고 반사가 없으며(check 0x31C3), CCITT-FALSE(IBM-3740)는 0xFFFF에서 시작하고(0x29B1), KERMIT은 반사하고 0에서 시작하며(0x2189), X-25(IBM-SDLC)는 반사하고 0xFFFF에서 시작해 결과를 반전합니다(0x906E). 'CRC-CCITT'라는 이름이 이 중 여러 개에 쓰이기 때문에 check 값이 중요합니다.
check 값이 무엇인가요?
선택한 매개변수로 ASCII 9바이트 123456789를 계산한 CRC입니다. reveng 카탈로그와 대부분의 데이터시트가 이 값을 제시하므로, 직접 정한 매개변수가 문서의 check 값을 내면 재현하려는 구현과 거의 확실히 같습니다.
값 하나로 CRC를 식별하면 얼마나 믿을 만한가요?
그다지 믿을 만하지 않습니다. 표에는 CRC 112개가 있고, 16비트 값이면 프리셋마다 약 65,536분의 1 확률로 우연히 일치하며, 8비트 CRC는 약 256분의 1입니다. 다른 메시지로 한 번 더 확인하세요. 두 번 모두 일치하는 CRC가 실제로 쓰인 것일 가능성이 매우 높습니다.
refin과 refout은 무엇인가요?
입력 반사는 UART 같은 직렬 하드웨어처럼 각 바이트를 최하위 비트부터 처리하는 것이고, 출력 반사는 최종 레지스터의 비트 순서를 뒤집는 것입니다. 대부분의 CRC는 둘을 같게 두지만 CRC-12/UMTS처럼 출력만 반사하는 것도 있습니다.
관련 도구
2의 보수 변환기 (8–64비트)
십진·hex·이진·8진 값을 입력해 8/16/32/64비트 2의 보수 비트 패턴과 부호 있는/없는 해석, hex, 8진, 1의 보수를 확인 — 브라우저에서.
변환
CRC-32 계산기 (CRC-32 & CRC-32C)
텍스트 또는 hex 바이트의 CRC-32(IEEE 802.3, zip/gzip/PNG) 또는 CRC-32C(Castagnoli) 체크섬을 소문자 hex·대문자 hex·부호 없는 10진수로 계산 — 브라우저에서.
개발
chmod 계산기
Unix 파일 권한을 8진수(755), 기호(rwxr-xr-x), 체크박스 그리드 사이에서 변환. setuid/setgid/sticky 비트, chmod·find 명령, umask 힌트까지 포함.
개발
xxHash·MurmurHash3·FNV·SipHash 계산기
텍스트, 16진 바이트, 파일의 xxHash32/64, MurmurHash3(32·128비트), FNV-1/FNV-1a(32·64비트), SipHash-2-4를 시드와 키로 계산합니다.
개발
BLAKE3·BLAKE2·Keccak-256 해시 생성기
텍스트, 16진, 파일을 BLAKE3(해시·키·키 유도), 키·솔트·개인화 BLAKE2b/2s, Keccak-256/512, SHAKE128/256으로 해시합니다.
개발
검사 숫자 계산기: Luhn·Verhoeff·Damm
Luhn, Verhoeff, Damm, ISO 7064(MOD 11-2·97-10·37-2 등)로 검사 숫자를 계산·검증하고, 각 방식이 어떤 입력 실수를 잡아내는지 확인합니다.
개발