Trình tạo mã băm (Hash)

Việc xác minh một tệp tải xuống, so sánh hai chuỗi ký tự từng byte một, hoặc tạo dấu vân tay cho quy trình chữ ký đều phụ thuộc vào thuật toán mã hóa hash. Công cụ này tính toán các loại hash phổ biến, MD5, SHA-1, SHA-2 (256/384/512) và CRC32, đồng thời cung cấp digest sẵn sàng để sao chép cho từng loại. Văn bản bạn nhập được gửi đến máy chủ của chúng tôi để tính toán digest.

Cách tạo giá trị hash

  1. 1

    Dán hoặc nhập văn bản

    Nhập văn bản bạn muốn băm. Công cụ này chỉ hoạt động với văn bản, không có tải tệp lên.

  2. 2

    Chọn một thuật toán băm

    Hãy chọn MD5, SHA-1, SHA-256, SHA-384, SHA-512 hoặc CRC32 tùy theo trường hợp sử dụng của bạn.

  3. 3

    Tạo các giá trị băm

    Nhấp vào "Tạo mã băm". Digest của thuật toán đã chọn sẽ hiện ra và danh sách bên dưới hiển thị tất cả thuật toán cùng lúc.

  4. 4

    Sao chép giá trị digest

    Giá trị digest có độ dài cố định thu được đã sẵn sàng để dán vào tệp checksum, tiêu đề chữ ký hoặc hộp thoại so sánh.

Tôi nên chọn thuật toán băm nào?

Không phải giá trị băm nào cũng phù hợp với mọi tác vụ. MD5 và SHA-1 rất phù hợp để kiểm tra tính duy nhất, nhưng không thể dùng cho bất cứ việc gì liên quan đến bảo mật. SHA-2 vẫn là lựa chọn mặc định thận trọng cho các dự án mới.

Bảng tham chiếu thuật toán

Thuật toán Kích thước đầu ra Tình trạng bảo mật Cách sử dụng điển hình
MD5 128 bit Đã bị phá, có xung đột thực tế từ năm 2004 Checksum ngoài bảo mật, ETag, khóa bộ nhớ đệm
SHA-1 160 bit Không còn dùng, xung đột SHAttered năm 2017 ID đối tượng Git cũ, chuỗi TLS cũ
SHA-256 256 bit An toàn, mặc định được khuyến nghị TLS, ký số, toàn vẹn tệp tin, blockchain
SHA-384 384 bit An toàn TLS 1.3 Suite B, độ toàn vẹn mạnh hơn
SHA-512 512 bit An toàn Tập dữ liệu rất lớn, xây dựng HMAC
CRC32 32 bit Không phải mã hóa băm, xung đột tầm thường Phát hiện lỗi (ZIP, PNG), kiểm tra toàn vẹn nhanh

Băm không phải là mã hóa

Giá trị băm mang tính một chiều: từ digest không thể khôi phục được dữ liệu đầu vào. Hai đặc tính sau đây rất quan trọng:

  • Khả năng chống xung đột, không có hai đầu vào nào tạo ra giá trị băm giống nhau. Đặc tính này đã bị phá ở MD5 và SHA-1.
  • Khả năng chống tiền ảnh (preimage), với một digest cho trước, bạn không thể tìm được đầu vào tạo ra nó. Đặc tính này vẫn đúng với MD5 và SHA-1, nên checksum vẫn có thể phát hiện hư hỏng ngẫu nhiên.

Đừng dùng SHA-256 thuần cho mật khẩu

Mật khẩu cần một hàm chậm và có thêm chuỗi ngẫu nhiên (salt): bcrypt, scrypt, Argon2id hoặc PBKDF2 với ít nhất 600.000 vòng lặp. Một hàm băm nhanh như SHA-256 có thể bị dò quét (brute-force) với tốc độ hàng tỷ lần thử mỗi giây trên GPU hiện đại.

Mã hóa văn bản (encoding) rất quan trọng

Băm một chuỗi nghĩa là băm biểu diễn dạng byte của nó. Ví dụ, chuỗi "café" khi mã hóa theo UTF-8 sẽ tạo ra digest khác với chính từ đó khi mã hóa theo Latin-1. Công cụ này mặc định băm các byte theo chuẩn UTF-8.

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

Hầu như luôn là do sự khác biệt về cách mã hóa hoặc khoảng trắng cuối chuỗi. Hãy kiểm tra xem công cụ kia sử dụng UTF-8 hay Latin-1, và liệu nó có thêm dòng mới vào dữ liệu đầu vào trước khi thực hiện phép tạo hash hay không.

Đối với việc phát hiện tình trạng hư hỏng ngẫu nhiên trong tệp tải xuống, MD5 là phù hợp. Tuy nhiên, đối với bất kỳ dữ liệu nào bị tấn công giả mạo (như chứng chỉ, chữ ký mã nguồn hoặc hệ thống lưu trữ mật khẩu), MD5 sẽ không còn hiệu lực và không nên được sử dụng.

Không. Công cụ này chỉ xử lý văn bản. Để kiểm tra tệp, hãy dùng lệnh checksum tích hợp trong hệ điều hành của bạn, chẳng hạn sha256sum trên Linux và macOS hoặc Get-FileHash trên Windows.

Văn bản bạn nhập được gửi đến máy chủ của chúng tôi để tính toán digest và không được lưu giữ sau đó.

SHA-2 là một họ các thuật toán; SHA-224, SHA-256, SHA-384 và SHA-512 đều thuộc nhóm này. Khi người ta nói “SHA-2” mà không nêu cụ thể kích thước, họ thường ám chỉ SHA-256.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác