CRC 계산기
문자열이나 16진수 데이터의 CRC-8, CRC-16, CRC-32 값을 계산합니다
도구를 불러오는 중…
글자, 16진수 바이트, 파일의 CRC를 34가지 CRC-8·CRC-16·CRC-32 알고리즘이나 직접 정한 매개변수로 계산합니다. Modbus 프레임을 확인하거나, 데이터시트의 체크섬과 맞춰 보거나, 장치가 어떤 CRC를 쓰는지 알아낼 때 씁니다.
사용 방법
- '글자', '16진수 바이트', '파일' 중 하나를 고르고 데이터를 넣습니다. 글자는 '인코딩'을 고르고, 16진수 바이트는 공백·쉼표·0x로 구분해도 됩니다.
- '알고리즘'에서 CRC-16/MODBUS 같은 프리셋을 고릅니다. CRC가 16진수·10진수·2진수로 바로 나타납니다.
- '프레임 뒤에 붙일 바이트'에서 CRC 바이트를 어떤 순서로 보내는지 확인합니다.
- 모르는 CRC를 찾으려면 기대하는 값을 'CRC 값 찾기'에 입력합니다. 그 값을 내는 프리셋이 모두 표시됩니다.
- 목록에 없는 알고리즘은 '매개변수'를 열어 폭, 다항식, 초기값, 반사, 최종 XOR을 정합니다.
계산 방식과 참고
- 매개변수 이름과 검사값은 RevEng의 CRC 알고리즘 카탈로그를 따릅니다. 모든 프리셋은 카탈로그 검사값, 즉 ASCII 글자 123456789의 CRC로 시험했습니다.
- MODBUS 같은 반사형 알고리즘은 보통 하위 바이트를, 나머지는 상위 바이트를 먼저 보냅니다.
- 파일은 이 기기에서 읽으며 업로드하지 않습니다. 8비트 합, XOR, LRC, Fletcher-16, Adler-32도 함께 보여 줍니다.
자주 묻는 질문
- 01 03 00 00 00 0A의 Modbus CRC16은 얼마인가요?
- 0xCDC5입니다. Modbus RTU는 하위 바이트를 먼저 붙이므로 프레임 끝은 C5 CD가 됩니다.
- CRC-16/CCITT-FALSE, XMODEM, KERMIT은 무엇이 다른가요?
- 셋 다 다항식 0x1021을 씁니다. CCITT-FALSE(IBM-3740)는 초기값 0xFFFF, XMODEM은 0에서 시작하고, KERMIT은 0에서 시작하면서 비트를 반사합니다. 123456789에 대한 값은 각각 0x29B1, 0x31C3, 0x2189입니다.
- 다른 프로그램과 CRC32 값이 다르게 나와요.
- 먼저 입력 바이트를 확인하세요. 같은 글자도 UTF-8과 Latin-1에서 바이트가 다릅니다. 그다음 변형을 비교하세요. 표준 CRC-32(ISO-HDLC)는 123456789에 0xCBF43926을 내고, MPEG-2와 BZIP2는 같은 다항식에 다른 설정을 씁니다.
- CRC로 위변조를 막을 수 있나요?
- 아닙니다. CRC는 케이블 잡음 같은 우연한 오류를 찾지만, 누구나 데이터를 바꾼 뒤 다시 계산할 수 있습니다. 위변조 확인에는 SHA-256 같은 암호 해시를 쓰세요.