Bỏ qua tới nội dung
Toolbench

Tạo chữ ký HMAC

Ký một thông điệp bằng khóa bí mật, hoặc kiểm tra chữ ký webhook mà bạn nhận được.

Chạy hoàn toàn trong trình duyệt của bạn

Đang tải công cụ...

Cách sử dụng

  1. Dán thông điệp đúng như lúc nó được ký — với webhook thì đó là body thô trước mọi bước phân tích.
  2. Nhập khóa bí mật dùng chung.
  3. Chọn thuật toán mà bên gửi dùng; mặc định là SHA-256 trừ khi tài liệu của họ nói khác.
  4. Muốn đối chiếu, hãy dán chữ ký bạn nhận được và đọc kết quả so sánh.

Tính năng

  • HMAC với SHA-1, SHA-256, SHA-384 và SHA-512, dùng Web Crypto.
  • Kết quả dạng hex hoặc base64 — chỗ mà hai bên hay lệch nhau nhất.
  • Đối chiếu chữ ký bằng phép so sánh thời gian không đổi.
  • Từ chối khóa rỗng thay vì vẫn ký.
  • Chạy hoàn toàn trong trình duyệt — khóa bí mật không rời khỏi trang.

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

Sao không băm khóa và thông điệp gộp lại cho nhanh?
Vì `hash(secret + message)` có thể bị giả mạo. Với phần lớn hàm băm, kẻ tấn công có sẵn một chữ ký hợp lệ có thể nối thêm dữ liệu và tính ra chữ ký hợp lệ cho thông điệp dài hơn mà không cần biết khóa — đó là tấn công length extension. HMAC là cấu trúc sinh ra để chặn đúng điều này, nên các chuẩn ký đều quy định dùng HMAC thay vì cách làm hiển nhiên kia.
Chữ ký của tôi không khớp thì sai ở đâu?
Gần như luôn là ở thông điệp chứ không phải khóa. Chữ ký được tính trên đúng từng byte: một framework đã phân tích rồi tạo lại chuỗi JSON là đã làm đổi byte, một ký tự xuống dòng thừa cũng vậy, thứ tự khóa khác hay bảng mã khác cũng vậy. Một số chuẩn còn ký cả timestamp lẫn body — hãy xem tài liệu bên gửi nói rõ cái gì được ký và tái tạo cho đúng.
Dán khóa thật của hệ thống vào đây có an toàn không?
Khóa không rời khỏi trình duyệt — không có máy chủ và không có request nào. Dù vậy, hãy coi mọi khóa từng dán vào bất kỳ công cụ nào là khóa có thể cần xoay vòng: một tiện ích mở rộng trình duyệt đọc được trang này như mọi trang khác. Kiểm tra một lần cho webhook thì rủi ro thấp; nếu là việc làm thường xuyên, hãy ký ngay trong mã của bạn.

Kiểm tra xem mã bí mật hai lớp bạn lưu có sinh ra đúng mã trên điện thoại hay không — trước khi mất điện thoại.

Tạo mã băm MD5, SHA-1, SHA-256, SHA-384 và SHA-512, hoặc đối chiếu một checksum.

Đọc header, claim và hạn dùng của một JSON Web Token — không gửi đi đâu cả.

Đây là hash loại gì? Một danh sách rút gọn có xếp hạng, và nói thẳng khi câu trả lời không thể chắc chắn.

Tạo chữ ký HMAC — Ký và đối chiếu với SHA-256