tink-crypto/tink
GitHub: tink-crypto/tink
Tink 是 Google 开发的一款跨语言加密库,旨在通过简洁且「难于误用」的 API 设计,为开发者提供安全、一致的密码学操作支持。
Stars: 13565 | Forks: 1184
# Tink
一个多语言、跨平台的库,提供安全、易于正确使用且难以(较难)被误用的加密 API。另请参阅:https://developers.google.com/tink。
## 目录
1. [Introduction](#introduction)
2. [Current status](#current-status)
3. [Getting started](#getting-started)
4. [Learn more](#learn-more)
5. [Contact and mailing list](#contact-and-mailing-list)
6. [Maintainers](#maintainers)
## 简介
在应用程序中使用加密技术[不应该][devs_are_users_too_slides]感觉像是在黑暗中玩电锯杂耍。Tink 是由 Google 的一组密码学家和安全工程师编写的加密库。它诞生于我们与 Google 产品团队合作的丰富经验、[fixing weaknesses in implementations](https://github.com/google/wycheproof),并提供无需密码学背景即可安全使用的简单 API。
Tink 提供的安全 API 易于正确使用,且难以(较难)被误用。它通过以用户为中心的设计、仔细的实现和代码审查以及广泛的测试,减少了常见的加密陷阱。在 Google,Tink 是标准的加密库之一,已部署在数百个产品和系统中。
要快速了解 Tink 的设计,请查看在 [Real World Crypto 2019](https://rwc.iacr.org/2019/) 发表的[关于 Tink 的演讲][tink_talk_recording]的[幻灯片][tink_talk_slides]。
## 当前状态
[Java/Android](docs/JAVA-HOWTO.md)、[C++](docs/CPP-HOWTO.md)、[Obj-C](docs/OBJC-HOWTO.md)、[Go](docs/GOLANG-HOWTO.md) 和 [Python](docs/PYTHON-HOWTO.md) 已通过实地测试,可用于生产环境。最新版本是 [1.7.0](https://github.com/google/tink/releases/tag/v1.7.0),发布于 2022-08-09。
Javascript/Typescript 处于 alpha 状态,仅应用于测试。请参阅移除意向声明 [here](https://github.com/google/tink/issues/689)。
**`Ubuntu`** | **`macOS`**
----------------------------------- | ---------------------------------
[](#) | [](#)
## 入门指南
该项目的文档位于 https://developers.google.com/tink。目前,它详细介绍了各种常见的应用场景,并涵盖了 Java 和 Python 的实现。随着时间的推移,该网站将填充更多内容。
或者,您可以查看所有的 [`examples`],这些示例演示了如何使用各种语言通过 Tink 执行简单的任务。
* Python
```
pip3 install tink
```
* Golang
```
go get github.com/google/tink/go/...
```
* Java
```
com.google.crypto.tink
tink
1.7.0
```
* Android
```
dependencies {
implementation 'com.google.crypto.tink:tink-android:1.7.0'
}
```
* Objective-C/iOS
```
cd /path/to/your/Xcode project/
pod init
pod 'Tink', '1.7.0'
pod install
```
## 了解更多
* [Java HOW-TO](docs/JAVA-HOWTO.md)
* [C++ HOW-TO](docs/CPP-HOWTO.md)
* [Obj-C HOW-TO](docs/OBJC-HOWTO.md)
* [Go HOW-TO](docs/GOLANG-HOWTO.md)
* [Python HOW-TO](docs/PYTHON-HOWTO.md)
* [Security and Usability Design Goals](docs/SECURITY-USABILITY.md)
* [Supported Crypto Primitives](docs/PRIMITIVES.md)
* [Key Management](docs/KEY-MANAGEMENT.md)
* [Managing keys with Tinkey](docs/TINKEY.md)
* [Known Issues](docs/KNOWN-ISSUES.md)
## 社区驱动的移植
Tink 开箱即用支持多种语言,但它仍然不支持所有语言。幸运的是,一些用户非常喜欢 Tink,以至于他们将其移植到了自己喜欢的语言中!您可以在下面找到一些值得关注的移植版本。
**警告**:虽然我们通常会审查这些移植版本,但在另行通知之前,我们不维护它们,也没有计划在可预见的未来支持它们。
* [Clojure](https://github.com/perkss/tinklj)
## 维护者
Tink 由以下人员维护(按 A-Z 排序):
- Moreno Ambrosin
- Taymon Beal
- Daniel Bleichenbacher
- William Conner
- Thai Duong
- Thomas Holenstein
- Stefan Kölbl
- Charles Lee
- Cindy Lin
- Fernando Lobato Meeser
- Atul Luykx
- Rafael Misoczki
- Sophie Schmieg
- Laurent Simon
- Elizaveta Tretiakova
- Jürg Wullschleger
前成员:
- Haris Andrianakis
- Tanuj Dhir
- Quan Nguyen
- Bartosz Przydatek
- Enzo Puig
- Veronika Slívová
- Paula Vidas
- Cathie Yun
- Federico Zalcberg
标签:Android, API安全, C++, CVE, CVE监控, DNS解析, DSL, Go, Golang, Google, Java, JSON输出, JS文件枚举, Nuclei, POC验证, ProjectDiscovery, Python, Ruby工具, YAML, 云配置检测, 加密, 域名枚举, 域名枚举, 威胁情报, 安全库, 安全编程, 密码学, 密钥管理, 对称加密, 开发者工具, 开源项目, 手动系统调用, 数字签名, 数据保护, 数据擦除, 无后门, 日志审计, 消息认证码, 混合加密, 漏洞扫描器, 网络安全, 自动化审计, 蓝队防御, 逆向工具, 隐私保护, 非对称加密