Tạo Hash Adler-32
Hàm checksum siêu nhanh để phát hiện lỗi
Adler-32 là hàm checksum được Mark Adler thiết kế năm 1995. Tạo hash 32-bit (8 ký tự thập lục phân). Được sử dụng rộng rãi trong thư viện nén zlib và giao thức rsync.
Adler-32 là gì?
Adler-32 sử dụng hai tổng: A (tổng tất cả byte + 1) và B (tổng tích lũy của tất cả giá trị A). Cả hai đều lấy modulo với số nguyên tố 65521.
✅ Ưu điểm
- • Siêu nhanh: Nhanh hơn đáng kể so với CRC-32 trong phần mềm
- • Chi phí thấp: Sử dụng CPU và bộ nhớ tối thiểu
- • Triển khai đơn giản: Chỉ vài dòng mã
- • Đã chứng minh trong sản xuất: Hàng tỷ luồng đã xử lý trong zlib
📊 Ứng dụng
- • Nén zlib: Xác minh tính toàn vẹn luồng
- • Giao thức rsync: Phát hiện thay đổi tệp nhanh
- • Kiểm tra mạng: Xác thực gói tin nhẹ
- • Truyền dữ liệu: Phát hiện lỗi luồng
⚠️ Lưu ý Bảo mật
Adler-32 không phải là hàm băm mật mã. Đây là checksum để phát hiện lỗi, không phải bảo mật. Sử dụng SHA-256 cho mật mã.
🔄 So sánh Adler-32
Adler-32
32-bit, phi mật mã
Nhanh nhất, phát hiện tối thiểu
CRC-32
32-bit, đa thức
Chậm hơn nhưng phát hiện tốt hơn
MD5
128-bit, mật mã
Bảo mật cao hơn nhiều
❓ Câu hỏi Thường gặp
Sự khác biệt giữa Adler-32 và CRC-32?
Adler-32 tính toán nhanh hơn nhưng phát hiện ít loại lỗi hơn CRC-32.
Có thể dùng Adler-32 cho bảo mật?
Không. Adler-32 là checksum, không phải hash mật mã.
Tại sao zlib dùng Adler-32?
zlib ưu tiên tốc độ.