Nền tảng video có phát hiện MD5 của video đã bị thay đổi không?

Sau khi người dùng tải video lên, nếu họ tải lên một video đã bị thay đổi giá trị băm, nền tảng có nhận diện được rằng video này đã bị sửa đổi giá trị băm không?

Aug 29, 2025 09:36 141 lượt đọc Khoảng 978 từ Khoảng 3 phút đọc

Nguyên lý thay đổi hàm băm của tệp

Các hàm băm mật mã điển hình bao gồm: MD5, SHA-1/256, v.v. Đặc điểm cốt lõi trong thiết kế của hàm băm mật mã là “hiệu ứng tuyết lở” - bất kỳ thay đổi rất nhỏ nào ở đầu vào cũng sẽ dẫn đến thay đổi rất lớn ở đầu ra. Điều này có nghĩa là dù chỉ sửa một byte, toàn bộ giá trị băm cũng sẽ hoàn toàn khác. Ví dụ, bạn viết một tài liệu 2000 chữ và lưu thành tệp word; chỉ cần thay đổi một ký tự trong đó, chẳng hạn thêm một dấu cách, thì md5 của tệp này sẽ thay đổi hoàn toàn. Vì vậy, bản chất của việc “thay đổi hàm băm tệp” là thay đổi chính nội dung tệp, chứ không phải các thuộc tính bên ngoài như tên tệp. Đặc tính này khiến việc sửa đổi hàm băm ở cấp độ tệp tương đối dễ thực hiện.
Các hệ thống và định dạng khác nhau có cách quy định khác nhau về “siêu dữ liệu”: nếu siêu dữ liệu được nhúng trong dữ liệu tệp (như thẻ trong JPEG/vùng chứa video), việc thay đổi nó sẽ làm thay đổi hàm băm; nếu siêu dữ liệu được lưu trong luồng dữ liệu hoặc thuộc tính bên ngoài của hệ thống tệp, việc thay đổi nó không ảnh hưởng đến hàm băm được tính theo nội dung tệp. Điều này giải thích hiện tượng thường gặp: “đổi tên tệp thì hàm băm không đổi, sửa siêu dữ liệu nhúng thì hàm băm sẽ đổi”.

Chuyển mã trên nền tảng video và “nhận biết có sửa hàm băm hay không”

Sau khi người dùng tải video lên nền tảng video, nền tảng sẽ thực hiện với video đó:

Tiếp nhận tệp gốc

Kiểm tra và xác minh định dạng

Xử lý chuyển mã (chuyển đổi định dạng, điều chỉnh độ phân giải, nén)

Trích xuất khung hình chính

Tính toán hàm băm nhiều lớp

Đây là một quy trình chuyển mã “tách ghép kênh → giải mã → xử lý → mã hóa lại → ghép kênh” nhằm tạo ra nhiều phiên bản với nhiều bitrate/nhiều độ phân giải để phát thích ứng. Bản thân quá trình này sẽ thay đổi chuỗi byte của tệp và mọi hàm băm mật mã trước khi tải lên.

Ở cấp độ hàm băm tệp: trong quá trình chuyển mã, nền tảng sẽ tạo lại tệp, nên hàm băm của tệp gốc tự nhiên sẽ thay đổi. Vì vậy, hàm băm tệp mà người dùng đã sửa trước đó không còn ý nghĩa sau khi chuyển mã. Do đó nền tảng sẽ không nhận biết xem tệp của bạn có từng sửa md5 hay không, vì điều đó hoàn toàn không có ý nghĩa!

Khâu khử trùng lặp/kiểm tra bản quyền không dựa vào hàm băm tệp của người tải lên, mà do nền tảng tính toán “dấu vân tay âm thanh-video/hàm băm cảm nhận” riêng trên nội dung sau khi giải mã, rồi so khớp với dấu vân tay tham chiếu trong cơ sở dữ liệu; ví dụ Content ID của YouTube sẽ “lấy dấu vân tay” nội dung tải lên và đối chiếu với dữ liệu tham chiếu do chủ sở hữu quyền cung cấp.

Vì vậy, nền tảng không phải “nhận biết hàm băm đã bị sửa”, mà là “bỏ qua hàm băm tải lên, tính lại dấu vân tay nội dung và so khớp”. Điều này khiến việc chỉ sửa byte của tệp hoặc siêu dữ liệu vùng chứa để thay đổi MD5/SHA không thể vượt qua các cơ chế kiểm tra dựa trên nội dung.

Hàng loạt Trình duyệt Phiên bản máy tính
Biểu tượng công cụ Công cụ thay đổi MD5 tệp hàng loạt

Công cụ thay đổi MD5 tệp hàng loạt

Sửa hàng loạt giá trị MD5 của tệp, ngay cả các tệp giống nhau cũng tạo ra giá trị MD5 khác nhau.

Bắt đầu
Xử lý tệp 1