رمز مصادقة الرسائل (MAC)
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح لك دالة MAC الأساسية التحقّق من أنّه لم يعبث أحد ببياناتك.
يمكن للمُرسِل الذي يشارك مفتاحًا متماثلًا مع مستلِم احتساب
علامة مصادقة لرسالة معيّنة، ما يسمح للمستلِم بالتحقّق
من أنّ الرسالة واردة من المُرسِل المتوقّع ولم يتم تعديلها.
تتضمّن عناوين MAC السمات التالية:
- الأصالة: معرفة المفتاح هي الطريقة الوحيدة لإنشاء علامة MAC
قابلة للتحقّق.
- Symmetric: تتطلّب معالجة العلامة وإثبات صحتها استخدام المفتاح نفسه.
يمكن أن يكون عنوان MAC حتميًا أو عشوائيًا، وذلك استنادًا إلى الخوارزمية. لا تستخدم Tink
خوارزميات MAC غير الحتمية في الوقت الحالي. يجب استخدام علامة MAC
فقط لمصادقة الرسائل، وليس لأغراض أخرى مثل إنشاء ملف برمجي
بوحدات بت شبه عشوائية (للاطّلاع على ذلك، راجِع PRF).
إذا كنت بحاجة إلى مفتاح أساسي غير متماثل بدلاً من ذلك، اطّلِع على التوقيع
الرقمي.
اختيار نوع المفتاح
ننصحك باستخدام HMAC_SHA256 لمعظم الاستخدامات، ولكن هناك خيارات أخرى أيضًا.
بشكل عام، تنطبق القواعد التالية:
الحد الأدنى من ضمانات الأمان
- قوة مصادقة 80 بت على الأقل
- أمان ضد التزوير الوجودي في إطار هجوم نص عادي مُختار
- أمان بسعة 128 بت على الأقل ضد هجمات استرداد المفاتيح، وكذلك في
سيناريوهات متعددة المستخدمين (عندما لا يستهدف المهاجم مفتاحًا معيّنًا، ولكن
أي مفتاح من مجموعة تضم ما يصل إلى 32 مفتاحًا)
مثال على حالة الاستخدام
راجِع المقالة أريد حماية البيانات من التلاعب بها.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\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,[]]