CoderTools

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)

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

Trường hợp sử dụng phổ biến

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

Tham khảo