Trình tính hash tệp miễn phí

Tính các hash SHA-1, SHA-256, SHA-384, SHA-512 và MD5 cho bất kỳ tệp nào. Xác minh tính toàn vẹn của tệp và phát hiện các thay đổi ngay lập tức.

Dữ liệu của bạn không bao giờ rời khỏi thiết bị của bạn
Thả một tệp vào đây hoặc nhấp để duyệt
Tệp/văn bản: -
Kích thước: -
Đã tính: -

Hash tệp là gì?

Hash tệp là một dấu vân tay có độ dài cố định của nội dung của một tệp. Ngay cả một thay đổi nhỏ tạo ra một hash hoàn toàn khác. Các hash phục vụ để xác minh tính toàn vẹn, phát hiện sự hỏng hóc và xác nhận tính xác thực của một tệp. Các thuật toán phổ biến bao gồm SHA-256 (hiện đại, an toàn), MD5 (cũ) và SHA-1.

Các Thuật Toán: Lịch Sử Ngắn Gọn

Năm thuật toán trong công cụ này, theo thứ tự thời gian phát hành. MD5 (Message Digest 5, Ronald Rivest tại MIT, RFC 1321 xuất bản tháng 4 năm 1992) tạo ra hash 128-bit và là hash đa mục đích chiếm ưu thế cho những năm 1990 và đầu 2000. Các điểm yếu mật mã bắt đầu xuất hiện vào năm 1996 (pseudo-collision của Dobbertin); một cuộc tấn công xung đột thực tế đã được Xiaoyun Wang và Hongbo Yu chứng minh vào tháng 8 năm 2004 tại CRYPTO 2004, hoàn thành dưới một giờ trên một máy duy nhất. Marc Stevens đã xuất bản một cuộc tấn công xung đột chosen-prefix vào năm 2008 cho phép giả mạo các chứng chỉ X.509 xung đột. MD5 hiện bị phá vỡ cho bất kỳ mục đích mật mã nào: không bao giờ sử dụng nó nơi sự kháng cự xung đột quan trọng (chữ ký số, dấu vân tay chứng chỉ, hash mật khẩu). Nó vẫn hữu ích cho các kiểm tra tính toàn vẹn không-mật-mã (phát hiện hỏng hóc tình cờ từ các đĩa xấu hoặc chuyển mạng nhiễu) và cho các định danh có thể địa chỉ-nội dung nơi bạn tin tưởng nguồn không phải là độc hại.

SHA-1 (Secure Hash Algorithm 1, được thiết kế bởi NSA, được công bố là FIPS 180-1 vào tháng 4 năm 1995) tạo ra hash 160-bit và là hash mật mã chiếm ưu thế cho cuối những năm 1990 đến đầu những năm 2010. Các cuộc tấn công lý thuyết đã được đề xuất vào năm 2005 bởi Wang, Yin và Yu. Xung đột SHA-1 thực tế đầu tiên đã được công bố vào ngày 23 tháng 2 năm 2017 bởi một nhóm Google + CWI Amsterdam do Marc Stevens dẫn đầu: cuộc tấn công "SHAttered": sử dụng khoảng 9 quintillion phép tính SHA-1 để tạo ra hai tệp PDF với các hash SHA-1 giống hệt nhưng nội dung nhìn thấy khác nhau. Trình duyệt đã bắt đầu loại bỏ chứng chỉ TLS SHA-1 vào lúc đó; Git hiện đại đang chuyển từ SHA-1 sang SHA-256 cho danh tính đối tượng. Giống như MD5, SHA-1 vẫn ổn cho tính toàn vẹn không-mật-mã nhưng không bao giờ nên được sử dụng nơi sự kháng cự xung đột quan trọng vào năm 2026.

SHA-2 (NSA, FIPS 180-2 được công bố tháng 8 năm 2002) là gia đình hash workhorse hiện tại: một bộ các hàm liên quan bao gồm SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 và SHA-512/256. SHA-256 tạo hash 256-bit, SHA-384 tạo hash 384-bit, SHA-512 tạo hash 512-bit; 384 về cơ bản là SHA-512 với output bị cắt và một IV khác. Không có cuộc tấn công thực tế nào chống lại gia đình SHA-2 tồn tại vào năm 2026; SHA-256 là lựa chọn mặc định cho các ứng dụng mới và là hàm hash đằng sau Bitcoin (cho cả khai thác và xuất phát địa chỉ), dấu vân tay chứng chỉ TLS, di chuyển danh tính đối tượng được lên kế hoạch của Git, hash giao dịch Ethereum, chữ ký JWT HS256 và hầu hết các checksum phân phối phần mềm. SHA-512 được ưa thích khi 256 bit output không đủ hoặc khi bạn muốn hiệu suất hơi nhanh hơn trên CPU 64-bit (các hoạt động nội bộ của SHA-512 là 64-bit, so với SHA-256 32-bit, vì vậy nó xử lý nhiều dữ liệu hơn trên mỗi chu kỳ CPU trên phần cứng 64-bit mặc dù output lớn hơn).

SHA-3 (Keccak, được thiết kế bởi Guido Bertoni, Joan Daemen, Michaël Peeters và Gilles Van Assche, đã giành chiến thắng trong NIST SHA-3 Competition vào tháng 10 năm 2012, được chuẩn hóa là FIPS 202 vào tháng 8 năm 2015) là chính sách bảo hiểm mật mã: khác về cấu trúc với SHA-2 (kiến trúc sponge thay vì Merkle-Damgård), do đó bất kỳ đột phá nào phá vỡ SHA-2 cũng không nhất thiết phải phá vỡ SHA-3. SHA-3 hiện không nằm trong danh sách thuật toán của công cụ này vì Web Crypto API không bao gồm nó trong đặc tả ban đầu: các trình duyệt hiện đại có thể thêm nó trong tương lai. Gia đình SHA-2 là mặc định được khuyến nghị cho việc băm phía-trình-duyệt ngày nay.

Các Lựa Chọn Thay Thế Hiện Đại Vượt Ra Ngoài SHA-2

Hai gia đình hash phi-NIST đã giành được sức kéo vì lý do hiệu suất. BLAKE2 (Aumasson, Neves, Wilcox-O'Hearn, Winnerlein, tháng 1 năm 2013) nhanh hơn SHA-2 với bảo mật tương đương và được sử dụng rộng rãi trong cryptocurrency, băm mật khẩu Argon2, và các ứng dụng hiệu suất cao nơi tốc độ của SHA-2 là một nút thắt. BLAKE3 (O'Connor, Aumasson, Neves, Wilcox-O'Hearn, tháng 1 năm 2020) là một thiết kế lại có thể song song hóa trên nhiều lõi CPU và nhanh hơn nữa: đặc biệt hấp dẫn cho việc băm các tệp rất lớn vì công việc phân chia trên các lõi một cách sạch sẽ. Cả hai đều không có trong tiêu chuẩn Web Crypto API, vì vậy công cụ này gắn bó với gia đình SHA-2 + MD5 + SHA-1 để tương thích; đối với việc băm BLAKE3 dòng lệnh, triển khai kinh điển là công cụ b3sum từ kho tham chiếu BLAKE3. Lựa chọn cho việc băm tệp phía-trình-duyệt vào năm 2026 vẫn là SHA-256 trừ khi có lý do cụ thể để sử dụng cái khác: tương thích rộng, không có vấn đề bằng sáng chế, được tăng tốc phần cứng trên hầu hết các CPU hiện đại (Intel SHA Extensions từ Goldmont 2016, hướng dẫn ARMv8 SHA-2 trên hầu như mọi smartphone), và tốc độ chấp nhận được ngay cả trên các tệp đa-gigabyte trong trình duyệt.

Khi Hash Tệp Phát Huy Giá Trị

Cách Công Cụ Này Hoạt Động

Khi bạn thả một tệp vào trình chỉnh sửa, trình duyệt đọc nó vào ArrayBuffer thông qua FileReader.readAsArrayBuffer() (hoặc, trong các trình duyệt hiện đại, phương thức hiệu quả hơn File.arrayBuffer() trả-về-Promise). crypto.subtle.digest(algorithm, buffer) của Web Crypto API băm buffer với mã nguồn gốc: được triển khai bằng C++ bên trong engine trình duyệt, thường sử dụng tăng tốc phần cứng (Intel SHA Extensions trên x86-64 từ Goldmont, hướng dẫn ARMv8 SHA-2 trên hầu như mọi smartphone). ArrayBuffer được trả về được chuyển đổi thành chuỗi hex để hiển thị. Ba hash JavaScript thuần (MD5 và SHA-1, nơi Web Crypto API có thể từ chối hoặc nơi đang sử dụng polyfill) chạy thông qua các triển khai chuyên dụng nhỏ. Không có bước tải lên, không có xử lý phía máy chủ, không có telemetry: xác minh trong tab Network của DevTools khi bạn thả tệp (không có yêu cầu nào kích hoạt), hoặc đưa trang offline (chế độ máy bay) sau khi tải và bộ băm vẫn hoạt động trên các tệp cục bộ. Giới hạn kích thước tệp thực tế là bộ nhớ trình duyệt: băm một tệp 1 GB hoạt động nhưng tiêu thụ ~1 GB RAM trong quá trình hoạt động; các tệp đa-gigabyte có thể buộc trình duyệt phải swap hoặc thất bại. Đối với các tệp rất lớn, một công cụ dòng lệnh chuyên dụng (shasum -a 256 trên macOS/Linux, certutil -hashfile ... SHA256 trên Windows) là lựa chọn tốt hơn.

Quyền Riêng Tư: Tại Sao Chỉ-Trình-Duyệt Đặc Biệt Quan Trọng Ở Đây

Các tệp bạn có thể muốn băm bao gồm phần mềm đã tải xuống (mà bạn đang xác minh tính toàn vẹn chính xác bởi vì bạn chưa tin tưởng nó), tài liệu cá nhân (mà bạn muốn ghi lại hash mà không cần đưa nó cho bất kỳ ai), tệp media chưa phát hành, bằng chứng trong điều tra pháp y, hoặc các bản dựng độc quyền nơi ngay cả việc tải tệp lên dịch vụ băm cũng không được chấp nhận. Các bộ băm tệp phía-máy-chủ, ngay cả khi họ tuyên bố "chúng tôi không giữ tệp," nhận được toàn bộ nội dung tệp: vào lúc nó nằm trong bộ nhớ của họ, sự đảm bảo quyền riêng tư đã mất. Công cụ này chạy hoàn toàn trong trình duyệt của bạn thông qua Web Crypto API; tệp không bao giờ vượt qua mạng. Xác minh trong tab Network của DevTools khi bạn thả một tệp (hoạt động mạng duy nhất phải là tải trang ban đầu). Đưa trang offline (chế độ máy bay) sau khi tải: bộ băm vẫn hoạt động, chứng minh kiến trúc chỉ-cục-bộ. Đối với các tệp chứa bất cứ điều gì nhạy cảm: tài liệu bí mật, phần mềm chưa phát hành, hồ sơ tài chính, quét y tế, bất cứ thứ gì được bảo vệ bởi NDA hoặc quy định tuân thủ: băm phía-trình-duyệt là tùy chọn an toàn duy nhất.

Câu hỏi thường gặp

Thuật toán hash nào để sử dụng?

SHA-256 được khuyến nghị cho các ứng dụng mới. MD5 và SHA-1 được coi là yếu về mặt mật mã nhưng vẫn có thể sử dụng được cho các xác minh tính toàn vẹn cơ bản. Công cụ này cung cấp tất cả các tùy chọn để phù hợp với chuẩn được sử dụng bởi phần mềm của bạn.

Có thể đảo ngược một hash để lấy lại tệp gốc không?

Không. Các hash là các hàm một chiều. Không thể đảo ngược một hash để lấy lại dữ liệu gốc. Đó là cố ý · đó là điều làm cho các hash an toàn để lưu trữ mật khẩu và xác minh tính toàn vẹn của các tệp.

MD5 có an toàn cho việc xác minh tệp không?

MD5 không an toàn về mặt mật mã và không nên được sử dụng cho các ứng dụng bảo mật. Tuy nhiên, nó hoạt động cho việc phát hiện hỏng hóc cơ bản và các checksum tổng quát. Sử dụng SHA-256 cho bất kỳ xác minh quan trọng nào.

Có giới hạn kích thước tệp không?

Không có giới hạn cứng, nhưng các giới hạn thực tế phụ thuộc vào bộ nhớ trình duyệt. Các tệp lên đến vài trăm MB băm nhanh chóng trên bất kỳ thiết bị hiện đại nào. Các tệp trong phạm vi 1-2 GB hoạt động nhưng tiêu thụ RAM bằng với kích thước tệp trong quá trình băm. Các tệp đa-gigabyte có thể kích hoạt swapping hoặc sự cố OOM trình duyệt. Đối với các tệp rất lớn, các công cụ dòng lệnh (shasum -a 256 file trên macOS/Linux, certutil -hashfile file SHA256 trên Windows, Get-FileHash trong PowerShell) xử lý chúng tốt hơn vì chúng có thể stream tệp thay vì tải tất cả vào bộ nhớ.

Khi hai tệp có cùng hash thì có nghĩa là gì?

Đối với một hàm hash khỏe mạnh (SHA-256, SHA-512, hoặc bất kỳ trong gia đình SHA-2 vào năm 2026), điều đó có nghĩa là các tệp giống hệt bit-cho-bit: xác suất hai tệp khác nhau tạo ra cùng hash là cực kỳ nhỏ. Đối với các hàm hash bị phá vỡ (MD5, SHA-1), điều đó có thể có nghĩa là các tệp giống hệt hoặc một xung đột được xây dựng có chủ ý. Quy tắc thực tế: nếu bạn tính SHA-256 của hai tệp và nhận được cùng giá trị, các tệp giống nhau. Nếu bạn tính MD5 và nhận được cùng giá trị, các tệp có lẽ giống nhau nhưng một đối thủ kiên trì có thể đã thiết kế chúng để xung đột.

Công cụ liên quan