본문으로 건너뛰기
AZ Tools

CRC 계산기: CRC-8·CRC-16·CRC-64·Modbus

3~64비트의 모든 CRC를 계산합니다. Modbus·CCITT·XMODEM·CRC-64/XZ 등 112개 카탈로그 프리셋이나 직접 정한 매개변수로 계산하고, 어떤 CRC가 그 값을 내는지도 찾습니다.

입력

입력 9바이트.

CRC(hex)
10진수
바이트, 빅엔디언
바이트, 리틀엔디언(예: Modbus 전송 순서)
2진수

이 매개변수의 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 값으로 확인했습니다. 모두 브라우저에서 실행됩니다.

사용법

  1. 데이터를 텍스트나 hex 바이트로 입력하거나 파일을 고릅니다.
  2. 목록(폭별로 묶임)에서 CRC를 고르거나 폭·다항식·초깃값·최종 XOR·반사 설정을 직접 입력합니다. check 값으로 직접 정한 매개변수를 데이터시트와 대조할 수 있습니다.
  3. 미지의 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처럼 출력만 반사하는 것도 있습니다.

관련 도구