leplusorg/docker-crypt
GitHub: leplusorg/docker-crypt
该工具集将多个主流密码学命令行工具打包到同一跨平台 Docker 镜像中,让用户无需本地安装即可在隔离容器内完成数据的加密、解密与签名操作。
Stars: 3 | Forks: 1
# 加密/解密/签名
多平台 Docker 容器,内置用于加密/解密/签名数据的实用工具(`gnupg`、`openssl`、`age`、`jose`、`xmlsec`...)。
[](crypt/Dockerfile)
[](https://github.com/leplusorg/docker-crypt/actions?query=workflow:"Docker")
[](https://hub.docker.com/r/leplusorg/crypt)
[](https://hub.docker.com/r/leplusorg/crypt)
[](https://hub.docker.com/r/leplusorg/crypt)
[](https://bestpractices.coreinfrastructure.org/projects/10083)
[](https://securityscorecards.dev/viewer/?uri=github.com/leplusorg/docker-crypt)
## 不使用文件系统的示例
假设您当前的工作目录下有一个文件 `foo.txt`,您想使用公钥 `age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7` 对其进行加密:
**Mac/Linux**
```
cat foo.txt | docker run --rm -i --net=none leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 > foo.age
```
**Windows**
```
type foo.txt | docker run --rm -i --net=none leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 > foo.age
```
## 使用文件系统的示例
同样地,假设您当前的工作目录下有一个文件 `foo.txt`,您想使用公钥 `age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7` 对其进行加密:
**Mac/Linux**
```
docker run --rm -t --user="$(id -u):$(id -g)" --net=none -v "$(pwd):/tmp" leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 --output /tmp/foo.age /tmp/foo.txt
```
**Windows**
在 `cmd` 中:
```
docker run --rm -t --net=none -v "%cd%:/tmp" leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 --output /tmp/foo.age /tmp/foo.txt
```
在 PowerShell 中:
```
docker run --rm -t --net=none -v "${PWD}:/tmp" leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 --output /tmp/foo.age /tmp/foo.txt
```
## 软件物料清单 (SBOM)
要获取最新镜像的 SBOM(SPDX JSON 格式),请使用
以下命令:
```
docker buildx imagetools inspect leplusorg/crypt --format '{{ json (index .SBOM "linux/amd64").SPDX }}'
```
将 `linux/amd64` 替换为您所需的平台(`linux/amd64`、`linux/arm64` 等)。
## 来源证明
要获取最新镜像的来源证明(JSON 格式),请使用
以下命令:
```
docker buildx imagetools inspect leplusorg/crypt --format '{{ json .Provenance }}'
```
## Sigstore
[Sigstore](https://docs.sigstore.dev) 允许您验证 artifact 的来源,从而致力于提升
供应链安全性。您可以验证您所使用的镜像确实是由
此仓库生成的。这意味着,如果您验证了
Docker 镜像的签名,您就可以信任从源代码、CI/CD 构建,再到
Maven Central 或其他任何您获取该镜像的地方的整个
供应链的完整性。
您可以使用以下命令通过其
sigstore 签名证明来验证最新的镜像:
```
cosign verify leplusorg/crypt --certificate-identity-regexp 'https://github\.com/leplusorg/docker-crypt/\.github/workflows/.+' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'
```
输出应如下所示:
```
Verification for index.docker.io/leplusorg/xml:main --
The following checks were performed on each of these signatures:
- The cosign claims were validated
- Existence of the claims in the transparency log was verified offline
- The code-signing certificate was verified using trusted certificate authority certificates
[{"critical":...
```
有关如何安装 `cosign` 的说明,请阅读此[文档](https://docs.sigstore.dev/cosign/system_config/installation/)。
## 请求新工具
请使用[此链接](https://github.com/leplusorg/docker-crypt/issues/new?assignees=thomasleplus&labels=enhancement&template=feature_request.md&title=%5BFEAT%5D)(需要 GitHub 账号)来请求将新工具添加到镜像中。我非常有兴趣为这些镜像添加新功能。
## 安全性
请阅读 [SECURITY.md](SECURITY.md) 以了解有关我们的安全策略以及如何报告安全漏洞的详细信息。
## 行为准则
请阅读 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) 以了解有关我们的行为准则的详细信息。
## 许可证
本项目根据 [LICENSE](LICENSE) 文件的条款进行授权。
标签:Docker, GnuPG, OpenSSL, 加密解密, 安全防御评估, 密码学, 手动系统调用, 请求拦截