Công Cụ Tạo Mã Băm (SHA-256)
Nhập hoặc dán văn bản và tính mã băm SHA-256, SHA-1, SHA-384 và SHA-512 chỉ bằng một lần nhấp, hiển thị dạng thập lục phân chữ thường hoặc chữ hoa, kèm nút sao chép cho từng mã. Việc băm dùng Web Crypto API của trình duyệt trên các byte UTF-8 của văn bản, nên không có gì được tải lên. Miễn phí, không cần đăng ký. Công cụ chỉ băm văn bản, không băm tệp.
Cách Sử Dụng Công Cụ Tạo Mã Băm
- 1. Nhập văn bản của bạn. Bất kỳ văn bản nào, tối đa những gì trình duyệt của bạn có thể giữ trong một ô nhập.
- 2. Nhấn Tạo Mã Băm. Cả bốn mã băm xuất hiện cùng lúc, với SHA-256 được làm nổi bật là lựa chọn khuyến nghị.
- 3. Chọn kiểu chữ. Thập lục phân chữ hoa chuyển mọi mã băm giữa chữ thường (quy ước thông thường) và chữ hoa; các byte bên dưới vẫn giống nhau.
- 4. Sao chép mã băm bạn cần bằng nút bên cạnh nó.
Bốn Thuật Toán
SHA-1, SHA-256, SHA-384 và SHA-512 được định nghĩa trong Tiêu chuẩn Băm An toàn (Secure Hash Standard) của chính phủ Hoa Kỳ, FIPS 180-4. Mỗi thuật toán biến đầu vào bất kỳ thành một mã băm có kích thước cố định. Kích thước là khác biệt duy nhất có thể nhìn thấy trong kết quả:
| Thuật toán | Kích thước mã băm | Số ký tự hex | Trạng thái |
|---|---|---|---|
| SHA-1 | 160 bit | 40 | Đã bị phá vỡ về bảo mật: va chạm thực tế đầu tiên được công bố năm 2017, và NIST yêu cầu loại bỏ dần trước năm 2030. Chỉ dùng cho tổng kiểm tra cũ. |
| SHA-256 | 256 bit | 64 | Lựa chọn tiêu chuẩn cho kiểm tra tính toàn vẹn và chữ ký |
| SHA-384 | 384 bit | 96 | Họ SHA-2; về cơ bản là SHA-512 được cắt ngắn |
| SHA-512 | 512 bit | 128 | Họ SHA-2; thường nhanh hơn SHA-256 trên bộ xử lý 64-bit |
Mã băm mật mã là một dấu vân tay một chiều. Cùng một đầu vào luôn cho cùng một mã băm, một thay đổi nhỏ tạo ra một mã băm hoàn toàn khác, và không thể khôi phục văn bản từ mã băm. Không có MD5 vì Web Crypto API không triển khai MD5.
Ví Dụ Minh Họa
Văn bản
abc
SHA-256
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
SHA-1
a9993e364706816aba3e25717850c26c9cd0d89d
Hai mã băm này là vectơ kiểm thử đã công bố trong các ví dụ của tiêu chuẩn, vì vậy bạn có thể kiểm tra công cụ với một nguồn đáng tin cậy. Bây giờ hãy xem một chữ cái thay đổi điều gì. Khi đổi "dog" thành "cog" trong The quick brown fox jumps over the lazy dog:
…dog
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
…cog
e4c4d8f3bf76b692de791a173e05321150f7a345b46484fe427f6acc7ecc81be
Hai mã băm SHA-256 này không có điểm chung nào dễ nhận ra: 123 trong số 256 bit khác nhau, gần bằng một nửa như bạn kỳ vọng từ hai giá trị không liên quan. Đây là hiệu ứng thác lũ (avalanche), và đó là lý do một mã băm có thể cho thấy một tệp hoặc tin nhắn đã thay đổi mà không tiết lộ điều gì đã thay đổi.
Vì Sao Mã Băm Của Bạn Có Thể Không Khớp
- Ký tự xuống dòng cuối.
abcvàabctheo sau là một ký tự xuống dòng là hai đầu vào khác nhau: SHA-256 củaabccộng một ký tự xuống dòng bắt đầu bằngedeaaff3, không phảiba7816bf. Lệnhecho abc | sha256sumcũng băm ký tự xuống dòng; dùngprintfhoặcecho -nđể bỏ nó đi. - Chữ hoa/thường và khoảng trắng.
Abcbăm khác vớiabc, và một khoảng trắng ở đầu hoặc cuối cũng vậy. - Mã hóa. Công cụ băm các byte UTF-8 của những gì bạn đã gõ. Văn bản được băm dưới dạng UTF-16 hoặc Latin-1 ở nơi khác sẽ cho mã băm khác đối với bất kỳ ký tự không phải ASCII nào.
- Kiểu kết thúc dòng. Văn bản dán từ tệp Windows có thể chứa ký tự carriage return mà ô văn bản tự động chuẩn hóa đi.
Công Cụ Này Không Dùng Cho Việc Gì
- Tệp. Công cụ chỉ băm văn bản. Với một tệp, hãy dùng
shasum -a 256 filetrên macOS hoặc Linux, hoặccertutil -hashfile file SHA256trên Windows. - Mật khẩu. SHA-256 được thiết kế để nhanh, và điều đó giúp kẻ tấn công đoán mật khẩu. Hãy lưu mật khẩu bằng một hàm băm mật khẩu chậm và có muối (salt) như Argon2id, scrypt hoặc bcrypt.
- Mã băm có khóa. Không có tùy chọn HMAC hay muối (salt).
Bạn Cần Công Cụ Nào?
Để xem dạng thập lục phân của chính văn bản thay vì mã băm của nó, hãy dùng Công Cụ Chuyển Đổi Hex. Với một mã định danh ngẫu nhiên, dùng Công Cụ Tạo UUID; với một bí mật ngẫu nhiên, dùng Công Cụ Tạo Mật Khẩu.
Câu Hỏi Thường Gặp
- Văn bản của tôi có được tải lên máy chủ không?
- Không. Mọi mã băm được tính trong trình duyệt của bạn bằng Web Crypto API (crypto.subtle.digest). Văn bản của bạn không được gửi đi đâu cả, và công cụ vẫn hoạt động nếu bạn ngoại tuyến sau khi trang đã tải xong.
- Mã băm mật mã là gì?
- Một hàm biến đầu vào có độ dài bất kỳ thành một mã băm có độ dài cố định. Nó mang tính xác định, một chiều và nhạy với từng bit của đầu vào. Mã băm được dùng để kiểm tra tính toàn vẹn của tệp, trong chữ ký số và trong mã định danh commit, cùng nhiều nơi khác.
- Tôi nên dùng thuật toán băm nào?
- SHA-256 cho hầu hết mọi trường hợp. SHA-384 và SHA-512 cho mã băm dài hơn từ cùng họ. Chỉ dùng SHA-1 khi một hệ thống cũ bắt buộc, và không bao giờ dùng nó cho bảo mật.
- SHA-1 có an toàn để dùng không?
- Không an toàn về bảo mật. Cuộc tấn công SHAttered năm 2017 đã tạo ra hai tệp PDF khác nhau có cùng mã băm SHA-1, và NIST yêu cầu loại bỏ nó trước cuối năm 2030. Nó vẫn chấp nhận được cho tổng kiểm tra không liên quan bảo mật, khi không lo ngại kẻ tấn công.
- Vì sao không có tùy chọn MD5?
- Web Crypto API không triển khai MD5, và công cụ chỉ dùng những gì trình duyệt cung cấp. MD5 đã không còn phù hợp cho bảo mật từ nhiều năm nay.
- Tôi có thể băm một tệp bằng công cụ này không?
- Không, công cụ chỉ nhận văn bản. Với tệp, hãy dùng công cụ dòng lệnh của hệ điều hành như đã mô tả ở trên.
- Vì sao SHA-256 của tôi khác với của trang khác?
- Gần như luôn vì đầu vào khác bởi một ký tự vô hình, như ký tự xuống dòng hoặc khoảng trắng ở cuối, hoặc khác kiểu mã hóa văn bản. Hãy kiểm tra các byte chính xác bằng Công Cụ Chuyển Đổi Hex.