消息身份验证代码 (MAC)
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
MAC 基元可用于验证没有人篡改您的数据。与接收者共享对称密钥的发送者可以计算指定消息的身份验证标记,让接收者验证消息是否来自预期的发送者且未经修改。
MAC 具有以下属性:
- 真实性:创建可验证的 MAC 标记的唯一方法是知道密钥。
- 对称:计算和验证代码需要同一密钥。
MAC 可以是确定性的,也可以是随机的,具体取决于算法。Tink 目前未实现不确定性 MAC 算法。您只能将 MAC 用于消息身份验证,而不应将其用于其他目的,例如生成伪随机字节(如需了解详情,请参阅 PRF)。
如果您需要非对称基元,请参阅数字签名。
选择密钥类型
我们建议在大多数情况下使用 HMAC_SHA256,但您也可以使用其他选项。
一般来说,以下情况是正确的:
最低限度的安全保证
- 至少 80 位身份验证强度
- 防范所选明文攻击下的存在伪造行为
- 针对密钥恢复攻击提供至少 128 位的安全性,适用于多用户场景(攻击者的目标不是特定密钥,而是一组最多 232 个密钥中的任意密钥)
示例用例
请参阅我希望保护数据免遭篡改。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-04-09。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]