了解 Tink 中的关键概念
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
首次开始使用 Tink 时,您应先了解一些关键概念,然后再开始使用;以下部分介绍了这些概念。
基元
Tink 使用基元作为加密基础组件来管理底层算法,因此用户可以安全地执行加密任务。原语定义了加密算法和密钥类型的详细信息。
密钥类型
键类型实现特定的基元。大多数原语都有多种密钥类型可供选择,具体取决于您对安全性、运行时和空间的要求。例如,AES128_GCM 是一种 AEAD,可快速有效地满足大多数需求。如需了解详情,请参阅按语言划分的支持的密钥类型。
键集和键集句柄
Tink 使用密钥集来管理密钥。密钥集本质上是一组有助于密钥轮替的密钥。密钥集值得注意的属性包括:
- 密钥集中的每个密钥都有一个唯一 ID,该 ID 在密钥集中是唯一的。此 ID 通常会作为前缀添加到生成的每个密文、签名或标记中,以指示所用的密钥(如需了解详情,请参阅 Tink 如何标记密文)。
- 密钥集中一次只能有一个密钥是主密钥。密钥集中的主密钥是指当前“正在使用”的密钥。
- 密钥集 必须包含同一原语(例如 AEAD)的实现,但可以包含不同的密钥类型(例如 AES-GCM 和 XCHACHA20-POLY1305 密钥)。
每种 Tink 实现都提供用于创建或修改密钥集的 API。不过,我们建议使用 CLI 工具 Tinkey。
用户可以使用 keyset 句柄来操作 keyset。密钥集句柄可限制实际敏感密钥材料的泄露。它还抽象出一个密钥集,允许用户获取“封装”整个密钥集的原语。例如,您可以获取具有 N 个密钥的密钥集的 AEAD 原语;然后,使用获取的原语进行加密和解密时,会使用密钥集中的主密钥。
如需了解详情,请参阅密钥集设计。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-12-09。
[[["易于理解","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"]],["最后更新时间 (UTC):2025-12-09。"],[],["Tink employs cryptographic building blocks called *primitives*, which define algorithms and key types. These include AEAD, Deterministic encryption, Digital signature, Hybrid encryption, MAC, and Streaming AEAD. *Key types* implement primitives, offering choices based on security and performance. *Keysets*, a set of keys with unique IDs, manage key rotation. *Keyset handles* abstract keysets, providing access to a primitive that operates over the entire keyset, including encryption/decryption with the primary key.\n"]]