Trình Trực quan Hóa Hàm Băm Chuỗi

Nhập văn bản để tính toán và so sánh trực quan các hash MD5, SHA-1, SHA-256 và SHA-512 với các khối màu.

Cách hoạt động

  1. Nhập văn bản của bạn: gõ hoặc dán bất kỳ chuỗi nào, mật khẩu, nội dung tệp, định danh hoặc bất kỳ văn bản nào để hash.
  2. Chọn một thuật toán: chọn MD5, SHA-1, SHA-256, SHA-384 hoặc SHA-512 theo nhu cầu của bạn.
  3. Sao chép hash: giá trị hash xuất hiện ngay tức thì. Sao chép nó để lưu trữ, so sánh hoặc xác minh.

Tại sao sử dụng trình tạo hash chuỗi?

Hashing biến bất kỳ chuỗi nào thành một dấu vân tay có độ dài cố định, riêng biệt cho nội dung của nó. Một ký tự thay đổi tạo ra một hash hoàn toàn khác. Điều này cần thiết để xác minh tính toàn vẹn của dữ liệu, lưu trữ mật khẩu một cách an toàn, tạo khóa cache, loại bỏ trùng lặp các bản ghi và tạo định danh dựa trên nội dung. Vì hashing là một chiều, không thể tìm lại văn bản gốc từ hash, điều này làm cho nó an toàn để lưu trữ dữ liệu nhạy cảm.

Tính năng

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

Nên chọn thuật toán hash nào?

Cho các sử dụng nhạy cảm (mật khẩu, chữ ký), sử dụng SHA-256 hoặc SHA-512. MD5 và SHA-1 đã bị phản đối về bảo mật nhưng vẫn hữu ích cho tổng kiểm tra và khóa cache, nơi không yêu cầu độ mạnh mã hóa.

Tôi có thể sử dụng công cụ này để hash mật khẩu để lưu trữ không?

Hash chuỗi cung cấp cho bạn một hash một chiều, nhưng để lưu trữ mật khẩu, cần sử dụng hàm dẫn xuất khóa như bcrypt, Argon2 hoặc PBKDF2 tích hợp salt và lặp lại. Các hash SHA đơn giản quá nhanh và dễ bị tấn công bằng bảng cầu vồng.

Hash có thể đảo ngược không?

Không. Các hàm hash là một chiều, không thể tìm lại chuỗi gốc từ hash của nó. Nếu hai chuỗi tạo ra cùng một hash (xung đột), đó là khuyết điểm của thuật toán. SHA-256 và SHA-512 không có xung đột thực tế nào được biết đến.

Lịch sử 35 năm của các hàm hash: từ MD5 đến BLAKE3

Các hàm hash mật mã đã tiến hóa qua một chuỗi dài các chu kỳ phá-và-thay thế. MD5 được Ronald Rivest xuất bản trong RFC 1321 (tháng 4 năm 1992) như là người kế thừa của MD4. Đầu ra 128 bit của nó được coi là đủ mạnh trong hơn một thập kỷ cho đến khi Wang và Yu xuất bản va chạm thực tế đầu tiên vào năm 2004. Đến năm 2008, các nhà nghiên cứu đã sử dụng các va chạm MD5 để giả mạo một cơ quan chứng chỉ SSL giả mạo. SHA-1 được NSA thiết kế và được NIST chuẩn hóa trong FIPS 180-1 (1995). Đầu ra 160 bit của nó đã đứng vững cho đến tháng 2 năm 2017, khi Google và CWI Amsterdam công bố cuộc tấn công SHAttered, tạo ra hai PDF có cùng hash SHA-1. Chi phí: khoảng 6.500 CPU-năm tương đương trên GPU. SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512), cũng từ NSA, được xuất bản trong FIPS 180-2 (tháng 8 năm 2002). Nó sử dụng cùng cấu trúc Merkle-Damgård như SHA-1 nhưng với các trạng thái lớn hơn và nhiều vòng hơn; không có cuộc tấn công thực tế nào tồn tại trên các phiên bản đầy đủ hôm nay. SHA-3 (Keccak, bởi Bertoni et al.) được NIST chọn sau một cuộc thi công khai và được chuẩn hóa trong FIPS 202 (tháng 8 năm 2015). SHA-3 sử dụng một cấu trúc xốp hoàn toàn khác, miễn nhiễm với các cuộc tấn công mở rộng độ dài ảnh hưởng đến SHA-2. Bên ngoài gia đình NIST, BLAKE2 (Aumasson et al., 2012) và BLAKE3 (2020) cung cấp bảo mật cấp SHA-3 với tốc độ của MD5; BLAKE3 hash một tệp 1 GB trong khoảng một giây trên một laptop hiện đại.

Thuật toán nào để chọn: bảng quyết định nhanh

Nơi hash thực sự được sử dụng

Những sai lầm hash mất tiền hoặc phá vỡ mọi thứ

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

Tại sao MD5 và SHA-1 «bị phá» nếu chúng vẫn tạo ra hash?

«Bị phá» có nghĩa là kẻ tấn công có thể tạo ra va chạm nhanh hơn vũ lực thô. Đối với MD5, việc tìm hai đầu vào với cùng một hash mất vài giây trên một laptop hôm nay. Đối với SHA-1, nó mất 6.500 CPU-năm vào năm 2017 và đã giảm đáng kể từ đó. Các hash vẫn hoạt động cơ học; những gì bị phá vỡ là sự đảm bảo an ninh rằng chúng «kháng va chạm». Đối với việc sử dụng không đối nghịch (checksum một tệp bạn tin tưởng chống hư hỏng ngẫu nhiên) MD5 vẫn hoạt động tốt. Đối với bất kỳ điều gì liên quan đến đối thủ, cả hai đều không an toàn.

Tôi có nên lo lắng về máy tính lượng tử phá vỡ SHA-256 không?

Ít hơn bạn có thể nghĩ. Thuật toán Grover tăng tốc các cuộc tấn công preimage chống lại một hash 256 bit từ 2²⁵⁶ đến 2¹²⁸ công việc tương đương cổ điển, vẫn thực tế không thể. Các nguyên thủy đối xứng (hash, AES) sống sót sau tính toán lượng tử bằng cách nhân đôi kích thước khóa/đầu ra. Mật mã khóa công khai (RSA, ECDSA) là cái rơi khó vào các cuộc tấn công lượng tử, do đó các tiêu chuẩn hậu lượng tử NIST được xuất bản vào tháng 8 năm 2024 (ML-KEM, ML-DSA, SLH-DSA). Nếu bạn đang sử dụng SHA-256 hôm nay, SHA-512 trong kỷ nguyên hậu lượng tử sẽ hơn đủ.

Sự khác biệt giữa hash và HMAC là gì?

Một hash (SHA-256) không khóa: bất kỳ ai có đầu vào đều có thể tính cùng đầu ra. Một HMAC (Hash-based Message Authentication Code) bao gói hash bằng một khóa bí mật, vì vậy chỉ có ai đó biết khóa mới có thể tính hoặc xác minh tag. Được định nghĩa trong RFC 2104 (1997), HMAC là cách chuẩn để «ký» một tin nhắn đối xứng (người gửi và người nhận chia sẻ một bí mật). Sử dụng HMAC-SHA256 cho chữ ký webhook, JWT HS256, ký yêu cầu API. SHA-256 đơn giản trên secret + message không an toàn do mở rộng độ dài.

Tại sao các thư viện khác nhau cho các hash khác nhau cho cùng một chuỗi?

Ba nguyên nhân phổ biến. Đầu tiên, mã hóa ký tự: UTF-8 vs UTF-16 vs Latin-1 cho các byte khác nhau cho các chuỗi không phải ASCII, do đó các hash khác nhau. Luôn mã hóa rõ ràng. Thứ hai, kết thúc dòng: "hello\n""hello\r\n" hash khác nhau; checksum tệp Windows-vs-Unix thường khác nhau vì lý do này. Thứ ba, định dạng đầu ra: hex chữ thường vs hex chữ hoa vs base64 trông như một giá trị khác nhưng đại diện cho cùng byte. Chuẩn hóa định dạng đầu vào và đầu ra trước khi so sánh.

Đầu vào của tôi có được gửi đến một máy chủ khi tôi hash ở đây không?

Không. Tất cả bốn hash được tính trong trình duyệt của bạn bằng API Web Crypto tích hợp (crypto.subtle.digest). Mở tab Mạng trong DevTools và nhập vào đầu vào, bạn sẽ thấy không có yêu cầu đi ra. An toàn cho thông tin xác thực, token, hoặc bất kỳ giá trị riêng tư nào bạn muốn hash mà không rời khỏi thiết bị của mình.

Công cụ liên quan

Trình tạo Hash miễn phí Trình tạo JWT miễn phí Trình tạo UUID miễn phí Trình mã hóa & giải mã Base64 miễn phí trực tuyến