Tạo Hash (SHA-1, SHA-256, SHA-384, SHA-512)
Nhập bất kỳ văn bản nào để xem tất cả bốn hash SHA cùng lúc. Hữu ích để xác minh tính toàn vẹn file, tạo chữ ký, gỡ lỗi ký yêu cầu API và học mật mã học.
Cách hoạt động
Hash là gì và không phải là gì
Hàm hash mật mã nhận đầu vào kích thước bất kỳ và tạo ra đầu ra cố định (gọi là 'digest'). Cùng đầu vào luôn cho cùng digest. Thay đổi nhỏ đầu vào tạo ra digest hoàn toàn khác (hiệu ứng tuyết lở). Đảo ngược digest để tìm đầu vào là không khả thi về mặt tính toán với các hàm mạnh về mặt mật mã học như SHA-256.
Hash không phải là mã hóa. Không có khóa, không có giải mã. Nhầm lẫn phổ biến: hash mật khẩu (dùng bcrypt/argon2 thay thế — chúng làm chậm brute force), hash văn bản tùy ý rồi 'giải mã' (không thể theo thiết kế).
Nên chọn thuật toán nào
SHA-256 là mặc định hiện đại. Dùng trong Bitcoin, chứng chỉ TLS, chữ ký JWT (HS256), hash tính toàn vẹn file. 256 bit là đủ cho mọi nhu cầu bảo mật thực tế.
SHA-384 và SHA-512 là các biến thể lớn hơn của cùng họ. SHA-512 đôi khi nhanh hơn trên phần cứng 64-bit. Dùng chúng khi giao thức hoặc tiêu chuẩn yêu cầu rõ ràng.
SHA-1 đã bị loại bỏ về mặt bảo mật nhưng vẫn xuất hiện trong các hệ thống cũ (TLS cũ, hash commit git). Đừng dùng nó cho công việc quan trọng bảo mật mới — các va chạm đã được chứng minh từ năm 2017. Chúng tôi bao gồm nó để tương thích ngược.
Các ứng dụng phổ biến
Tính toàn vẹn file: tải xuống file và hash; tính lại hash cục bộ; so sánh. Nếu khớp, file không bị thay đổi trong quá trình truyền.
Git commit: mỗi ID commit là hash SHA-1 của nội dung của nó. Hash một thông điệp commit không tiết lộ gì — bạn cần phần còn lại của commit để tái tạo nó.
Ký yêu cầu API: HMAC-SHA-256 là tiêu chuẩn cho AWS, GitHub và nhiều API khác. Bản thân hash chỉ là một phần của HMAC; API sẽ cung cấp cấu trúc chính xác mà nó mong đợi.
Khóa cache: hash một URL hoặc tập tham số cho một khóa cache ổn định, độ dài cố định.
Câu hỏi thường gặp
›Tại sao không có MD5?
Các va chạm MD5 đã được chứng minh từ năm 2004; Web Crypto API không cung cấp nó. Cho các mục đích phi bảo mật (khóa cache, loại bỏ trùng lặp file), hãy dùng SHA-256 — nó chỉ chậm hơn không đáng kể và không có rủi ro va chạm.
›Tôi có thể hash file nhị phân không?
Không trực tiếp qua công cụ này — chỉ dán văn bản. Với file, dùng shell OS: `shasum -a 256 myfile.txt` trên macOS/Linux, `Get-FileHash` trên Windows.
›Tại sao SHA-512 dài hơn SHA-256?
Số trong tên đề cập đến độ dài bit đầu ra: SHA-256 tạo 256 bit = 64 ký tự hex; SHA-512 tạo 512 bit = 128 ký tự hex. Dài gấp đôi.
›Hai đầu vào khác nhau có thể tạo ra cùng hash không?
Về lý thuyết có (nguyên lý hộp thư), trong thực tế không với SHA-256 và công nghệ hiện tại. Các va chạm SHA-1 đã được chứng minh; SHA-256 thì chưa.
›Tôi có nên dùng cái này để hash mật khẩu không?
Không. Mật khẩu cần hash chậm (bcrypt, scrypt, argon2) cộng với salt. SHA-256 đơn giản quá nhanh — kẻ tấn công có thể hash hàng tỷ lần mỗi giây.
›Tại sao cùng văn bản luôn cho cùng hash?
Theo định nghĩa. Hàm hash là xác định. Nếu bạn cần đầu ra khác nhau mỗi lần (ví dụ 'salt'), hãy thêm giá trị ngẫu nhiên vào đầu hoặc cuối đầu vào.
›Dữ liệu có được gửi đi đâu không?
Không. Web Crypto chạy hoàn toàn trong trình duyệt của bạn; không có gì được truyền đi.
›HMAC là gì và đây có phải là HMAC không?
HMAC thêm khóa bí mật vào hàm hash. Công cụ này tính hash đơn giản; với HMAC, dùng công cụ chuyên dụng hoặc thư viện lập trình.
Công cụ liên quan
Cập nhật lần cuối: