Bộ tạo Hash (MD5 / SHA)
Tạo các hàm băm mật mã: MD5, SHA-1, SHA-256, SHA-384 và SHA-512. Chạy trong trình duyệt của bạn thông qua Web Crypto API.
Hàm băm mật mã là gì và khi nào bạn cần chúng?
Hàm băm mật mã là một thuật toán tất định biến bất kỳ đầu vào nào (vài byte, một tệp nhiều gigabyte hay toàn bộ Wikipedia tiếng Anh) thành một đầu ra có kích thước cố định gọi là 'bản tóm lược' (digest) hay 'mã băm' (hash). SHA-256 tạo ra 256 bit (64 ký tự thập lục phân); SHA-512 tạo ra 512 bit; MD5 tạo ra 128 bit. Bốn đặc tính định nghĩa một hàm băm 'mật mã', khác với loại không mật mã (như CRC32): tính tất định (cùng đầu vào → cùng mã băm, luôn luôn), hiệu ứng thác đổ (thay đổi một bit duy nhất làm thay đổi khoảng một nửa số bit đầu ra), khả năng kháng tiền ảnh (bạn không thể đảo ngược mã băm để khôi phục đầu vào) và khả năng kháng va chạm (bạn không thể tìm ra hai đầu vào tạo ra cùng một mã băm). Khi một hàm băm bị phá vỡ, thường hai đặc tính cuối này sụp đổ: các cuộc tấn công va chạm nhắm vào MD5 (2004) và SHA-1 (2017) đã khiến chúng không còn phù hợp cho mục đích bảo mật, mặc dù chúng vẫn dùng được cho các kiểm tra tính toàn vẹn không có đối thủ, như tổng kiểm tra của tệp. Hãy dùng SHA-256 hoặc SHA-512 cho mọi công việc bảo mật mới. Công cụ này dùng Web Crypto API của trình duyệt (crypto.subtle.digest), được tăng tốc bằng phần cứng trên các thiết bị hiện đại, và tạo ra đầu ra giống hệt từng byte với OpenSSL, mô-đun hashlib của Python và mô-đun crypto của Node.
Các trường hợp sử dụng phổ biến
Xác minh một tệp đã tải xuống khớp với SHA-256 mà nhà phát hành liệt kê (ISO Linux, các bản phát hành công cụ bảo mật).
Tạo một định danh dựa trên nội dung cho khóa bộ nhớ đệm (hash của nội dung → URL ổn định).
Tạo khóa khử trùng lặp để lưu trữ tệp (hash khớp = tệp giống hệt nhau).
Xây dựng xác minh chữ ký webhook — HMAC-SHA256 của payload với secret dùng chung.
Tạo hash nội dung kiểu Git (SHA-1 cho định danh tree/blob).
Xác thực tính toàn vẹn của một hàng cơ sở dữ liệu bằng cách hash các cột khóa và lưu hash đó.
Câu hỏi thường gặp
Tại sao MD5 đã lỗi thời đối với bảo mật?▼
Có thể đảo ngược các mã băm không?▼
Sự khác biệt giữa SHA-256 và HMAC-SHA256 là gì?▼
Khi nào tôi nên dùng SHA-512 thay vì SHA-256?▼
Tại sao mã băm SHA của tôi khác với mã của một công cụ khác?▼
Dùng nó với dữ liệu nhạy cảm có an toàn không?▼
Công cụ liên quan
Bộ giải mã JWT
Giải mã JSON Web Tokens (JWT) ngay lập tức. Chạy trong trình duyệt của bạn: các token không bao giờ rời khỏi thiết bị, an toàn để dùng với các bí mật của môi trường production.
Trình định dạng và kiểm tra JSON
Định dạng, kiểm tra và thu gọn JSON trực tuyến. Hoạt động hoàn toàn trong trình duyệt của bạn: dữ liệu của bạn không bao giờ rời khỏi thiết bị.
Trình định dạng XML
Định dạng và làm đẹp các tài liệu XML. Hữu ích cho SOAP, sitemap, feed RSS và tệp cấu hình.
Bộ mã hóa và giải mã Base64
Mã hóa các chuỗi sang Base64 hoặc giải mã Base64 thành văn bản. Tôn trọng quyền riêng tư của bạn: chạy ngay trong trình duyệt.
Bộ mã hóa và giải mã URL
Chuyển đổi văn bản sang dạng mã hóa an toàn cho URL (mã hóa theo phần trăm) và ngược lại. Hữu ích cho chuỗi truy vấn, chuyển hướng và luồng OAuth.
Bộ mã hóa và giải mã thực thể HTML
Chuyển đổi các ký tự đặc biệt thành thực thể HTML (&, <, v.v.) và ngược lại. Hữu ích để nhúng văn bản vào HTML một cách an toàn.