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
Nhập văn bản thuần (mã hóa UTF-8)
Kết quả Adler-32
Về Adler-32
Adler-32 là thuật toán tổng kiểm tra được Mark Adler phát minh vào năm 1995. Nó được sử dụng trong thư viện nén zlib và là một phần của định dạng tệp gzip được sử dụng rộng rãi. Adler-32 được thiết kế để nhanh hơn CRC-32 trong khi vẫn duy trì khả năng phát hiện lỗi hợp lý.
Thuật toán tạo ra tổng kiểm tra 32-bit (4 byte) và đặc biệt hiệu quả với đầu vào ngắn. Nó được đặt theo tên của người tạo ra, người cũng là đồng tác giả của các chương trình nén gzip và zlib.
Thuật toán
Adler-32 hoạt động bằng cách duy trì hai tổng tích lũy modulo 65521 (số nguyên tố lớn nhất nhỏ hơn 2^16). Tổng kiểm tra được tính như sau:
A = 1 + D1 + D2 + ... + Dn (mod 65521) B = (1 + D1) + (1 + D1 + D2) + ... + (1 + D1 + ... + Dn) (mod 65521) Adler-32 = (B << 16) | A
Đặc điểm
- Đầu ra: 32-bit (4 byte, 8 ký tự hex)
- Tốc độ: Nhanh hơn CRC-32, đặc biệt trong triển khai phần mềm
- Modulo: Sử dụng số nguyên tố 65521 để phân phối tốt hơn
- Giá trị ban đầu: A=1, B=0 (chuỗi rỗng tạo ra tổng kiểm tra 1)
Trường hợp sử dụng phổ biến
- Thư viện zlib - tổng kiểm tra nén dữ liệu
- Định dạng tệp gzip - xác minh tính toàn vẹn
- Định dạng hình ảnh PNG - tính toàn vẹn chunk
- Xác thực dữ liệu nhanh khi tốc độ được ưu tiên hơn khả năng chống va chạm
Ví dụ
Input: "Hello, World!"
Adler-32: 1f9e046a (Hex) / 530858090 (Decimal)
Input: "" (empty string)
Adler-32: 00000001 (Hex) / 1 (Decimal)
Adler-32 vs CRC-32
| Đặc điểm | Adler-32 | CRC-32 |
|---|---|---|
| Tốc độ | Nhanh hơn | Chậm hơn |
| Phát hiện lỗi | Tốt | Tốt hơn |
| Sử dụng phổ biến | zlib, PNG, gzip | Ethernet, ZIP, PNG |