Tink,Google开源的专业加密库
github 密码学是一门复杂的学科,对于开发人员来说应该做到的大概是
- 加密算法的特点
- 适用场景
- 优点、缺点
- 加密算法的使用
在开发中我们可以直接使用Tink进行一些加密相关操作
Tink中的加密支持
在Tink中提供了Aead、DeterministicDead、Hybrid、Mac及signature的支持。从包结构看Tink的构成
- aead, (Authenticated Encryption with Associated Data) 使用关联数据进行身法认证加密
- annotations
- config
- daead, (Deterministic Authenticated Encryption with Associated Data)使用关联数据进行确定性认证加密
- hybrid, 混合型加密
- integration
- mac, 带秘钥的hash
- proto
- signature, 签名
- streamingaead, 使用关联数据进行流认证加密
- subtle
- util
通过官方demo我们可以知道Tink的使用方式。
// 运行时必须先使用Tink注册基元,以便让Tink知道所需的实现。
TinkConfig.register();
// 1.加载或生成加密密钥材料(Tink术语表示的KeySet)
KeysetHandle keysetHandle = KeysetHandle.generateNew(Aea