Cách Kiểm Tra Tính Toàn Vẹn File Sau Khi Tải Xuống (Hướng Dẫn Checksum)
Xác thực tính toàn vẹn của tệp bằng MD5, SHA-256 và SHA-512 trên Windows, macOS và Linux. Các lệnh terminal thực tế và file mẫu đã băm sẵn.
Bất cứ khi nào bạn tải xuống các tệp nhị phân phần mềm, ảnh đĩa hoặc tài liệu mật, việc so sánh checksum của tệp với digest đã được nhà cung cấp công bố xác nhận rằng tệp không bị thay đổi trong quá trình truyền hoặc bị hỏng do mất kết nối mạng.
Công Cụ Kiểm Tra Checksum Trên Dòng Lệnh Các Nền Tảng
Mọi hệ điều hành lớn đều cung cấp công cụ tích hợp để tính toán và xác minh hash.
1. macOS (Terminal)
# Tính SHA-256
shasum -a 256 sample-10mb.pdf
# Tính MD5
md5 sample-10mb.pdf
2. Linux (Ubuntu, Debian, RedHat)
# Tính SHA-256
sha256sum sample-10mb.pdf
# Xác minh với file checksums.txt
sha256sum -c checksums.txt
3. Windows (PowerShell)
# Tính SHA-256
Get-FileHash .\sample-10mb.pdf -Algorithm SHA256
# Tính MD5
Get-FileHash .\sample-10mb.pdf -Algorithm MD5
Tải file PDF mẫu 1MB và xác minh checksum SHA-256 của nó trong terminal ngay bây giờ.
Tải File Mẫu 1MB PDF →Tự Động Hóa Xác Minh Checksum Trong Node.js
import fs from 'fs';
import crypto from 'crypto';
export async function verifyDownloadedFile(
filePath: string,
expectedChecksum: string,
algorithm = 'sha256'
): Promise<boolean> {
const hash = crypto.createHash(algorithm);
const stream = fs.createReadStream(filePath);
for await (const chunk of stream) {
hash.update(chunk);
}
const actualChecksum = hash.digest('hex').toLowerCase();
const matches = actualChecksum === expectedChecksum.toLowerCase();
if (!matches) {
console.error(`Sai tính toàn vẹn! Mong đợi: ${expectedChecksum}, nhận được: ${actualChecksum}`);
}
return matches;
}
Tại Sao Cần Xác Minh Qua HTTPS?
Mặc dù TLS mã hóa dữ liệu trong quá trình truyền, một mạng phân phối nội dung bị xâm phạm, cache proxy bị lỗi hoặc kết nối bị gián đoạn có thể dẫn đến các payload bị cắt ngắn hoặc độc hại. Công bố SHA-256 digest ngoài băng tần đảm bảo tính xác thực đầu cuối.
Nguyễn Đại Long
Tác GiảBackend Lead • Chuyên gia Kiến trúc Hệ thống Phân tán & Lưu trữ Đám mây
Hơn 4 năm kinh nghiệm thiết kế các hệ thống xử lý tệp tải lên thông lượng lớn, tối ưu hóa cơ sở dữ liệu và hạ tầng phân tán Cloudflare R2 / AWS S3. Người sáng lập FileDummy và Mạng lưới Hệ sinh thái NDL.
Bài viết này có hữu ích không?
Bấm Thích để ủng hộ tác giả và giúp bài viết lan tỏa tới cộng đồng lập trình viên.
Thảo Luận Kỹ Thuật & Đóng Góp Ý Kiến (0)
Chia sẻ kết quả benchmark, phản hồi các trường hợp biên hoặc đặt câu hỏi chuyên môn.
Chưa có bình luận nào. Hãy là lập trình viên đầu tiên bắt đầu cuộc thảo luận!
Câu Hỏi Thường Gặp (FAQ)
What command verifies a SHA-256 checksum on macOS?▾
Run shasum -a 256 filename.pdf in Terminal. On Linux use sha256sum filename.pdf. On Windows PowerShell use Get-FileHash filename.pdf -Algorithm SHA256.
Why does my downloaded file have a different checksum?▾
Common causes: incomplete download, file modified in transit (rare on HTTPS), or comparing against the wrong algorithm. MD5 and SHA-256 produce completely different outputs for the same file.
Is HTTPS enough, or do I still need checksum verification?▾
HTTPS protects the file in transit. Checksum verification also protects against a compromised origin server serving a modified file. For security-sensitive downloads, verify checksums even over HTTPS.