Checksum
Checksum (Xác minh tính toàn vẹn dữ liệu)
Một giá trị được tính từ khối dữ liệu bằng thuật toán cụ thể, đóng vai trò như dấu vân tay để xác minh dữ liệu không bị hỏng hoặc thay đổi trong quá trình lưu trữ hoặc truyền tải.
Chi tiết kỹ thuật
Checksum dao động từ đơn giản (bit chẵn lẻ, tổng byte, CRC32) đến mật mã (MD5, SHA-256). CRC32 (Cyclic Redundancy Check, 32-bit) nhanh và phát hiện lỗi truyền thông phổ biến nhưng không chống va chạm. MD5 tạo hàm băm 128-bit và từng là tiêu chuẩn nhưng nay được coi là đã bị phá vỡ về mặt mật mã. SHA-256 cung cấp đảm bảo toàn vẹn mạnh mẽ. Trong thực tế, phần mềm tải về cung cấp checksum SHA-256 để người dùng so sánh với tính toán cục bộ. Web Crypto API cung cấp subtle.digest() để tính checksum mật mã trong trình duyệt. Adler-32 (dùng trong zlib) nhanh hơn CRC32 cho xác minh dữ liệu truyền phát.
Ví dụ
```javascript
// Checksum — Web Crypto API example
const data = new TextEncoder().encode('sensitive data');
const hash = await crypto.subtle.digest('SHA-256', data);
const hex = Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0')).join('');
```