Mã xác thực thông báo (MAC)
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Nguyên hàm MAC cho phép bạn xác minh rằng không ai can thiệp vào dữ liệu của bạn.
Người gửi chia sẻ khoá đối xứng với người nhận có thể tính toán thẻ xác thực cho một thư nhất định, cho phép người nhận xác minh rằng thư đến từ người gửi dự kiến và chưa bị sửa đổi.
MAC có các thuộc tính sau:
- Tính xác thực: Việc biết khoá là cách duy nhất để tạo thẻ MAC có thể xác minh.
- Symmetric: Việc tính toán và xác minh thẻ cần có cùng một khoá.
MAC có thể là cố định hoặc ngẫu nhiên, tuỳ thuộc vào thuật toán. Tink hiện không triển khai các thuật toán MAC không xác định. Bạn chỉ nên sử dụng MAC để xác thực thông điệp, chứ không phải cho các mục đích khác như tạo các byte ngẫu nhiên giả (để biết thêm thông tin, hãy xem PRF).
Nếu bạn cần một nguyên hàm bất đối xứng, hãy xem phần Chữ ký kỹ thuật số.
Chọn loại khoá
Bạn nên sử dụng HMAC_SHA256 cho hầu hết các trường hợp sử dụng, nhưng cũng có các tuỳ chọn khác.
Nói chung, những điều sau đây là đúng:
Cam kết bảo mật tối thiểu
- Độ mạnh của phương thức xác thực tối thiểu là 80 bit
- Bảo vệ khỏi hành vi giả mạo hiện hữu trong cuộc tấn công bằng văn bản thô đã chọn
- Bảo mật ít nhất 128 bit chống lại các cuộc tấn công khôi phục khoá, cũng như trong các trường hợp nhiều người dùng (khi kẻ tấn công không nhắm đến một khoá cụ thể, mà là bất kỳ khoá nào trong một tập hợp gồm tối đa 232 khoá)
Trường hợp sử dụng mẫu
Xem bài viết Tôi muốn bảo vệ dữ liệu khỏi bị can thiệp.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-25 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-25 UTC."],[[["\u003cp\u003eThe Message Authentication Code (MAC) primitive, using a shared symmetric key, enables verification of data integrity and authenticity by generating an authentication tag.\u003c/p\u003e\n"],["\u003cp\u003eMAC ensures authenticity as only the key holder can create a verifiable tag, and it's symmetric, requiring the same key for both computation and verification.\u003c/p\u003e\n"],["\u003cp\u003eTink recommends HMAC_SHA256 for most use cases, while HMAC_SHA512 offers higher security and AES256_CMAC might provide better performance with specific hardware.\u003c/p\u003e\n"],["\u003cp\u003eTink's MAC implementation guarantees a minimum of 80-bit authentication strength, protection against forgery, and at least 128-bit security against key recovery attacks, even in multi-user environments.\u003c/p\u003e\n"]]],["MAC uses a shared symmetric key between sender and recipient to verify message authenticity and integrity. The sender computes an authentication tag for a message, which the recipient uses to confirm its origin and unaltered state. MAC guarantees authenticity, where only key holders can create verifiable tags. Key recommendations include HMAC_SHA256, HMAC_SHA512 (most conservative), and AES256_CMAC (fastest with AES-NI). MAC is designed solely for message authentication, offering a minimum of 80-bit authentication strength.\n"],null,[]]