Băm

7 tools

Các công cụ băm của ToolDeck cho phép bạn tạo và nhận dạng các giá trị băm mật mã ngay trong trình duyệt. Bạn có thể chọn từ MD5, SHA-1, SHA-256, SHA-384, SHA-512 và HMAC để tạo giá trị băm, hoặc sử dụng Công Cụ Nhận Dạng Hash để phát hiện thuật toán từ bất kỳ chuỗi hash không rõ nguồn gốc nào. Tất cả các phép tính đều chạy hoàn toàn phía client bằng Web Crypto API. SHA-256 là lựa chọn chuẩn cho kiểm tra tính toàn vẹn tệp và xác minh đa mục đích. SHA-512 và SHA-384 cung cấp mức bảo mật cao hơn cho dữ liệu nhạy cảm và thuộc tính Subresource Integrity. HMAC kết hợp bất kỳ thuật toán băm nào với một khóa bí mật dùng chung, cho phép tạo mã xác thực thông điệp cho chữ ký API. Công Cụ Nhận Dạng Hash nhận dạng hơn 250 định dạng hash chỉ từ một lần dán — tất cả công cụ đều chạy hoàn toàn trong trình duyệt của bạn, không cài đặt, không đăng ký, và không gửi dữ liệu lên bất kỳ máy chủ nào.

Công Cụ Băm Là Gì?

Hàm băm mật mã là các phép biến đổi toán học một chiều chuyển đổi dữ liệu đầu vào có độ dài bất kỳ thành một digest có kích thước cố định. Cùng một đầu vào luôn tạo ra cùng một đầu ra (tính xác định), nhưng ngay cả một byte thay đổi cũng tạo ra một digest hoàn toàn khác — đặc tính này gọi là hiệu ứng tuyết lở. Các hàm băm được thiết kế sao cho việc khôi phục đầu vào gốc từ digest là không khả thi về mặt tính toán.

Công cụ băm được sử dụng rộng rãi trong phát triển phần mềm để xác minh tính toàn vẹn dữ liệu, lưu trữ mật khẩu, chữ ký số và loại bỏ trùng lặp nội dung. Khi bạn tải xuống một tệp nhị phân, checksum SHA-256 xác nhận tệp không bị hỏng trong quá trình truyền. Khi Git lưu trữ một commit, nó sử dụng SHA-1 (đang chuyển sang SHA-256) để xác định từng đối tượng theo nội dung. Khi máy chủ lưu trữ mật khẩu, nó sử dụng một thuật toán chậm và tiêu tốn bộ nhớ như bcrypt hoặc Argon2 — được xây dựng dựa trên cùng các nguyên tắc băm này — để chống lại các cuộc tấn công brute-force.

Các thuật toán khác nhau cung cấp kích thước đầu ra và mức bảo đảm bảo mật khác nhau. MD5 và SHA-1 đã bị phá vỡ về mặt mật mã cho các mục đích bảo mật — các cuộc tấn công va chạm đã được chứng minh trong thực tế — nhưng vẫn được sử dụng rộng rãi cho checksum và định danh phi bảo mật. SHA-256 và SHA-512, thuộc họ SHA-2 được chuẩn hóa trong NIST FIPS 180-4, là chuẩn mực hiện tại cho các ứng dụng nhạy cảm về bảo mật. HMAC thêm một khóa bí mật vào bất kỳ hàm băm nào, cho phép xác thực thông điệp chứng minh cả tính toàn vẹn lẫn tính xác thực.

Tại Sao Dùng Công Cụ Băm Trên ToolDeck?

Các công cụ băm của ToolDeck được xây dựng cho lập trình viên cần tạo hash nhanh và chính xác mà không cần tải dữ liệu lên dịch vụ bên ngoài. Tất cả thuật toán đều chạy trong trình duyệt bằng Web Crypto API hoặc JavaScript thuần — dữ liệu đầu vào của bạn không bao giờ rời khỏi thiết bị.

🔒
Tạo Hash Ưu Tiên Quyền Riêng Tư
Dữ liệu đầu vào của bạn không bao giờ được truyền đến bất kỳ máy chủ nào. Tất cả quá trình băm đều chạy cục bộ trong trình duyệt — bạn có thể dán thông tin xác thực, token hoặc chuỗi nhạy cảm mà không lo nguy cơ lộ thông tin.
🌐
Độ Chính Xác Web Crypto API
SHA-256, SHA-384 và SHA-512 sử dụng Web Crypto API gốc của trình duyệt — cùng triển khai được dùng trong TLS và mật mã cấp hệ điều hành — không phải một triển khai lại bằng JavaScript có thể khác với môi trường sản xuất.
Bảy Thuật Toán, Một Giao Diện
MD5, SHA-1, SHA-256, SHA-384, SHA-512, HMAC và Công Cụ Nhận Dạng Hash đều có thể truy cập qua một giao diện nhất quán — không cần chuyển đổi giữa các công cụ hay dịch vụ khác nhau.
🛡️
Kết Quả Tức Thì, Không Giới Hạn
Tạo hash gần như tức thì đối với các đầu vào thông thường. Không có giới hạn tốc độ, không có hạn mức, không cần đăng nhập — tất cả công cụ hoạt động ngoại tuyến sau khi trang đã tải.

Các Trường Hợp Sử Dụng Công Cụ Băm

Hash mật mã xuất hiện xuyên suốt vòng đời phát triển phần mềm — từ xác minh tệp tải xuống đến ký yêu cầu API đến gỡ lỗi nội bộ Git. Dưới đây là các tình huống phổ biến nhất mà những công cụ này giúp tiết kiệm thời gian.

Bảo Mật API & Chữ Ký HMAC
Xác minh chữ ký yêu cầu HMAC-SHA256 khi gỡ lỗi tích hợp webhook với Stripe, GitHub hoặc Shopify. Tạo chữ ký dự kiến cục bộ và so sánh với header X-Hub-Signature-256 để chẩn đoán lỗi xác thực.
Xác Minh Tính Toàn Vẹn Tệp
Tính checksum SHA-256 cho các tệp nhị phân tải xuống, ảnh Docker hoặc các gói lưu trữ. So sánh với checksum mà nhà phát hành công bố để xác nhận tệp không bị hỏng hoặc bị can thiệp trong quá trình truyền.
Gỡ Lỗi Hash Mật Khẩu
Kiểm tra rằng quy trình băm trong ứng dụng của bạn tạo ra đúng đầu ra. Tạo digest SHA-256 hoặc MD5 từ các đầu vào đã biết để xác nhận logic băm trước khi viết kiểm thử tích hợp.
Gỡ Lỗi Đối Tượng Git
Git sử dụng SHA-1 (và ngày càng nhiều SHA-256) để xác định các commit, tree và blob theo nội dung. Tạo hash SHA-1 từ dữ liệu đối tượng thô để hiểu cách hệ thống lưu trữ theo địa chỉ nội dung của Git gán ID đối tượng.
Subresource Integrity (SRI)
Tạo hash SHA-384 hoặc SHA-512 cho các tệp JavaScript và CSS được lưu trữ trên CDN để điền thuộc tính integrity cho thẻ script và link. Điều này ngăn CDN bị xâm phạm đưa mã độc vào trang của bạn.
Kiểm Tra Bảo Mật & Phân Tích Pháp Lý
Nhận dạng các chuỗi hash không rõ nguồn gốc từ file log, bản dump cơ sở dữ liệu hoặc lưu lượng mạng được ghi lại bằng Công Cụ Nhận Dạng Hash. Xác định liệu chuỗi đó là MD5, SHA-1, SHA-256 hay thuật toán khác dựa trên độ dài và bộ ký tự của nó.

Tham Chiếu Thuật Toán Băm

Bảng dưới đây bao gồm tất cả các thuật toán có trên ToolDeck. Độ dài đầu ra là yếu tố phân biệt chính — Công Cụ Nhận Dạng Hash sử dụng các độ dài này để phát hiện loại thuật toán từ các chuỗi hash không rõ nguồn gốc.

Thuật toánBitĐộ dài HexHọ thuật toánTrạng tháiMục đích chính
MD512832MDBị phá vỡ (va chạm)Checksum, khóa cache, loại bỏ trùng lặp phi bảo mật
SHA-116040SHA-1Không được khuyến nghịGit (cũ), checksum cũ, chuỗi chứng chỉ
SHA-25625664SHA-2Bảo mậtMật khẩu, TLS 1.3, Bitcoin, Subresource Integrity
SHA-38438496SHA-2Bảo mậtChứng chỉ TLS, hash Subresource Integrity
SHA-512512128SHA-2Bảo mậtLưu trữ bảo mật cao, khóa host SSH
HMACThay đổiThay đổiMAC có khóaBảo mật (có khóa)Chữ ký API, xác minh webhook

Bị phá vỡ = các cuộc tấn công va chạm đã được chứng minh trong thực tế. Không được khuyến nghị = tránh dùng cho code mới nhạy cảm về bảo mật. Bảo mật = không có cuộc tấn công thực tế đã biết tính đến năm 2026.

Cách Chọn Công Cụ Băm Phù Hợp

Các tác vụ băm khác nhau đòi hỏi các thuật toán khác nhau. Sử dụng hướng dẫn này để khớp trường hợp sử dụng của bạn với công cụ phù hợp.

  1. 1
    Nếu bạn cần xác minh checksum tệp, ký dữ liệu API hoặc làm việc với chứng chỉ TLSBộ Tạo SHA-256
  2. 2
    Nếu bạn cần tạo hash với độ bền SHA-2 tối đa cho lưu trữ bảo mật cao hoặc khóa SSHBộ Tạo SHA-512
  3. 3
    Nếu bạn cần tạo hash Subresource Integrity (SRI) cho JavaScript hoặc CSS lưu trữ trên CDNBộ Tạo SHA-384
  4. 4
    Nếu bạn cần tái tạo checksum MD5 cũ, khóa cache hoặc định danh loại bỏ trùng lặp phi bảo mậtBộ Tạo MD5
  5. 5
    Nếu bạn cần tính hash SHA-1 cho tương thích đối tượng Git hoặc codebase cũBộ Tạo SHA-1
  6. 6
    Nếu bạn cần xác minh chữ ký webhook HMAC-SHA256 từ Stripe, GitHub hoặc ShopifyBộ Tạo HMAC
  7. 7
    Nếu bạn cần nhận dạng thuật toán được dùng để tạo ra một chuỗi hash không rõ nguồn gốcCông Cụ Nhận Dạng Hash

Khi xây dựng hệ thống mới, mặc định dùng SHA-256 cho băm đa mục đích và HMAC-SHA256 cho băm thông điệp có xác thực. Tránh MD5 và SHA-1 trong bất kỳ ngữ cảnh nhạy cảm về bảo mật nào — chỉ dùng chúng cho checksum phi bảo mật khi cần tương thích ngược.

Câu Hỏi Thường Gặp

Sự khác biệt giữa băm và mã hóa là gì?
Băm là thao tác một chiều: hàm băm ánh xạ đầu vào tùy ý thành một digest có kích thước cố định, và bạn không thể khôi phục đầu vào gốc từ digest. Mã hóa là hai chiều: dữ liệu được mã hóa có thể được giải mã bằng khóa đúng. Hàm băm được dùng để xác minh tính toàn vẹn và chữ ký số. Mã hóa được dùng để bảo mật dữ liệu. Không bao giờ dùng hàm băm thay thế cho mã hóa khi bạn cần khôi phục dữ liệu gốc.
MD5 có an toàn để sử dụng không?
MD5 đã bị phá vỡ về khả năng chống va chạm. Các nhà nghiên cứu đã chứng minh vào năm 2004 rằng hai đầu vào khác nhau có thể được tạo ra để cho cùng một hash MD5 trong vài giây. MD5 không được dùng cho chữ ký số, chứng chỉ TLS hay băm mật khẩu. Nó vẫn có thể chấp nhận được cho các trường hợp sử dụng phi bảo mật — checksum tệp để phát hiện lỗi, khóa cache và định danh loại bỏ trùng lặp nội dung — nơi kẻ tấn công không thể khai thác va chạm.
HMAC là gì và khi nào nên dùng?
HMAC (Hash-based Message Authentication Code) kết hợp hàm băm mật mã với một khóa bí mật. Nó chứng minh cả rằng thông điệp chưa bị can thiệp (tính toàn vẹn) lẫn rằng nó đến từ người biết khóa (tính xác thực). Sử dụng HMAC khi xác minh payload webhook từ Stripe hoặc GitHub, ký yêu cầu AWS API (Signature Version 4), hoặc xác thực thông điệp giữa các dịch vụ. HMAC-SHA256 là lựa chọn được khuyến nghị cho các hệ thống mới.
Tại sao cùng một đầu vào luôn tạo ra cùng một hash?
Hàm băm là các phép biến đổi toán học xác định: một đầu vào nhất định được ánh xạ đến đúng một đầu ra thông qua một thuật toán cố định. Đặc tính này làm cho hash hữu ích để xác minh — nếu bạn băm một tệp hôm nay và lại làm vậy vào ngày mai mà nhận được cùng digest, tệp đó chưa thay đổi. Digest đóng vai trò như một dấu vân tay kích thước cố định của dữ liệu đầu vào, bất kể kích thước gốc của đầu vào.
Va chạm hash là gì?
Va chạm xảy ra khi hai đầu vào khác nhau tạo ra cùng một đầu ra hash. Về lý thuyết va chạm phải tồn tại vì hàm băm ánh xạ đầu vào vô hạn thành đầu ra hữu hạn (nguyên lý chuồng bồ câu). Một hàm băm bảo mật làm cho việc tìm va chạm không khả thi về mặt tính toán — thực tế không thể với phần cứng hiện tại. MD5 và SHA-1 được coi là bị phá vỡ vì các cuộc tấn công va chạm thực tế đã được chứng minh: Wang và cộng sự đã phá vỡ MD5 năm 2004, và cuộc tấn công SHAttered đã phá vỡ SHA-1 năm 2017.
Tôi có thể băm mật khẩu bằng SHA-256 hoặc SHA-512 không?
Không. Các hàm băm đa mục đích như SHA-256 và SHA-512 được thiết kế để nhanh — một kẻ tấn công với GPU có thể tính hàng tỷ hash mỗi giây, khiến các cuộc tấn công brute-force và từ điển trở nên khả thi. Để lưu trữ mật khẩu, hãy dùng thuật toán được xây dựng chuyên biệt: bcrypt, scrypt hoặc Argon2id. Các thuật toán này được thiết kế cố tình chậm và tiêu tốn bộ nhớ, chuyên để chống lại các cuộc tấn công brute-force ở quy mô lớn. Không bao giờ lưu trữ mật khẩu dưới dạng hash MD5 hay SHA thuần.
Con số trong SHA-256 hay SHA-512 có nghĩa gì?
Con số đề cập đến kích thước đầu ra tính bằng bit. SHA-256 tạo ra digest 256-bit, được biểu diễn dưới dạng 64 ký tự thập lục phân (4 bit mỗi ký tự hex: 256 ÷ 4 = 64). SHA-512 tạo ra digest 512-bit (128 ký tự hex). Kích thước đầu ra lớn hơn có nghĩa là nhiều giá trị hash có thể có hơn rất nhiều — mỗi bit bổ sung tăng gấp đôi không gian — khiến va chạm ngẫu nhiên và các cuộc tấn công preimage brute-force trở nên khó khăn theo cấp số nhân.
Hash mật mã khác với checksum đơn giản như thế nào?
Một checksum như CRC32 được tối ưu hóa để phát hiện lỗi — nhanh và đơn giản nhưng không cung cấp khả năng bảo vệ chống lại sự can thiệp có chủ đích. Kẻ tấn công có thể tạo ra một tệp đã sửa đổi với cùng CRC32. Một hash mật mã như SHA-256 có khả năng chống va chạm và chống preimage: việc tìm hai đầu vào có cùng hash, hoặc tìm đầu vào băm thành một mục tiêu nhất định, đòi hỏi tính toán không khả thi. Để xác minh tải xuống khi nguy cơ can thiệp là mối quan tâm, luôn dùng hash mật mã, không dùng checksum thông thường.