Máy tính CRC
Tính toán các giá trị checksum CRC với hỗ trợ nhập văn bản, hex và tệp tin
Nhập văn bản UTF-8, sẽ được chuyển đổi thành byte
Nhấp để chọn tệp hoặc kéo thả vào đây
Kết quả
Kết quả tất cả thuật toán CRC
Về thuật toán CRC
Kiểm tra dư thừa tuần hoàn (CRC) là mã phát hiện lỗi mạnh mẽ thường được sử dụng trong các mạng kỹ thuật số và thiết bị lưu trữ để phát hiện các thay đổi ngẫu nhiên đối với dữ liệu thô.
CRC được thiết kế để dễ dàng triển khai trong phần cứng nhị phân và đặc biệt hiệu quả trong việc phát hiện các lỗi phổ biến do nhiễu đường truyền.
Các thuật toán CRC được hỗ trợ
Công cụ này triển khai một loạt các thuật toán CRC tiêu chuẩn được sử dụng trong các giao thức công nghiệp và mạng.
| Thuật toán | Độ rộng | Đa thức | Sử dụng |
|---|---|---|---|
| CRC-8 | 8 bit | 0x07 | Kiểm tra dữ liệu đơn giản, cảm biến |
| CRC-16/Modbus | 16 bit | 0x8005 | Giao thức Modbus, công nghiệp |
| CRC-16/CCITT | 16 bit | 0x1021 | X.25, HDLC, Bluetooth |
| CRC-32 | 32 bit | 0x04C11DB7 | ZIP, Ethernet, PNG |
| CRC-32C | 32 bit | 0x1EDC6F41 | iSCSI, SCTP, Btrfs |
| CRC-64/ECMA | 64 bit | 0x42F0E1EBA9EA3693 | ECMA-182, nén XZ |
Các trường hợp sử dụng phổ biến
Câu hỏi thường gặp
CRC là gì và khác gì so với hàm băm mã hóa?
CRC (Kiểm tra Dư Vòng) là thuật toán tổng kiểm tra được thiết kế để phát hiện lỗi bit ngẫu nhiên trong quá trình truyền hoặc lưu trữ dữ liệu. Không giống các hàm băm mã hóa như SHA-256, CRC không được thiết kế để chống lại các thay đổi có chủ ý. Sử dụng CRC để phát hiện lỗi trong các giao thức truyền thông; sử dụng hàm băm mã hóa cho xác minh tính toàn vẹn khi bảo mật là ưu tiên.
Nên chọn biến thể CRC nào cho trường hợp sử dụng của tôi?
CRC-32 (ISO 3309) được dùng rộng rãi trong Ethernet, ZIP và PNG. CRC-16/MODBUS là tiêu chuẩn cho các giao thức công nghiệp. CRC-16/CCITT phù hợp với truyền thông nối tiếp. CRC-8 dùng cho các tin nhắn ngắn trong hệ thống nhúng. Nếu đặc tả giao thức xác định đa thức và giá trị khởi đầu cụ thể, hãy tuân thủ chính xác.
Tại sao kết quả CRC của tôi khác với giá trị mong đợi?
Kết quả CRC phụ thuộc vào bốn tham số: đa thức, giá trị khởi đầu, phản chiếu input/output và XOR cuối. Bất kỳ sự không khớp nào cũng sẽ cho kết quả khác. Hãy kiểm tra xem đầu vào được mã hóa là UTF-8, ASCII hay byte thô — cùng một chuỗi văn bản có thể tạo ra các chuỗi byte khác nhau và do đó cho giá trị CRC khác nhau.
Sự khác biệt giữa CRC-16/MODBUS và CRC-16/CCITT là gì?
Cả hai đều là CRC 16-bit với đa thức và giá trị khởi đầu khác nhau. CRC-16/MODBUS sử dụng đa thức 0x8005, giá trị khởi đầu 0xFFFF, với phản chiếu đầu vào và đầu ra. CRC-16/CCITT (còn gọi là CRC-CCITT hoặc CRC-16-IBM) sử dụng đa thức 0x1021, giá trị khởi đầu 0xFFFF. Chúng tạo ra đầu ra hoàn toàn khác nhau cho cùng một dữ liệu.
Tôi có thể tính CRC cho tệp nhị phân, không chỉ văn bản không?
Có — dán các byte hex của dữ liệu nhị phân bằng định dạng nhập Hex. Công cụ xử lý các giá trị byte thô bất kể chúng có biểu diễn ký tự có thể in hay không. Với các tệp nhị phân rất lớn, công cụ dòng lệnh như cksum hoặc binascii.crc32() của Python sẽ thực tế hơn.
Công Cụ Liên Quan
Bộ Tạo Hash MD5/MD4
Tạo giá trị hash MD5 và MD4 cho văn bản hoặc tệp với nhiều định dạng đầu ra
Bộ Tạo Hash SHA
Bộ tạo hash SHA trực tuyến hỗ trợ thuật toán SHA-1, SHA-256, SHA-384, SHA-512
Máy Tính Checksum Adler-32
Tính checksum Adler-32 cho văn bản và tệp, checksum nhanh được sử dụng trong nén zlib/gzip
Trình Tạo HMAC
Tạo mã xác thực HMAC với thuật toán MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 và RIPEMD-160
Chuyển Đổi Cơ Số
Chuyển đổi giữa hệ nhị phân, bát phân, thập phân và thập lục phân với hỗ trợ cơ số tùy chỉnh (2-36)