简介
GPG(GNU Privacy Guard)是一种用于数据加密和签名的开源软件,支持非对称加密和对称加密。在需要将一些敏感文件上传到网盘或公网的场景时,可以在本地使用非对称加密将文件加密后上传。
安装
brew install gpg
使用
查看版本
gpg --version
gpg (GnuPG) 2.4.6
libgcrypt 1.10.3
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /Users/mumu/.gnupg
支持的算法:
公钥: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
密文: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
散列: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
压缩: 不压缩, ZIP, ZLIB, BZIP2
生成密钥对
gpg --full-generate-key
gpg (GnuPG) 2.4.6; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
gpg: 目录‘/Users/dd/.gnupg’已创建
请选择您要使用的密钥类型:
(1) RSA 和 RSA
(2) DSA 和 Elgamal
(3) DSA(仅用于签名)
(4) RSA(仅用于签名)
(9) ECC(签名和加密) *默认*
(10) ECC(仅用于签名)
(14)卡中现有密钥
您的选择是?
请选择您想要使用的椭圆曲线:
(1) Curve 25519 *默认*
(4) NIST P-384
(6) Brainpool P-256
您的选择是?
请设定这个密钥的有效期限。
0 = 密钥永不过期
<n> = 密钥在 n 天后过期
<n>w = 密钥在 n 周后过期
<n>m = 密钥在 n 月后过期
<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0)
密钥永远不会过期
这些内容正确吗? (y/N) y
GnuPG 需要构建用户标识以辨认您的密钥。
真实姓名: mu
电子邮件地址: [email protected]
注释: mu
您选定了此用户标识:
“mu (mu) <[email protected]>”
更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? O
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
检查密钥对
检查公钥
gpg --list-keys
gpg: 正在检查信任度数据库
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: 深度:0 有效性: 1 已签名: 0 信任度:0-,0q,0n,0m,0f,1u
[keyboxd]
---------
pub ed25519 2024-11-07 [SC]
63Exxxx608C73C
uid [ 绝对 ] xxxx
sub cv25519 2024-11-07 [E]
检查私钥
gpg --list-secret-keys
[keyboxd]
---------
sec ed25519 2024-11-07 [SC]
63EExxxxC73C
uid [ 绝对 ] xxxx
ssb cv25519 2024-11-07 [E]
加密文件
gpg -o test-gpg-file.gpg -e -r [email protected] 1.php
说明:
- `-o file.gpg` 指定加密后的文件输出路径,一般用法是在原文件名称的基础上增加 `.gpg` 后缀。
- `-e` 是 `--encrypt` 的缩写,表示使用加密模式。
- `-r` 是 `--recipient` 的缩写,表示使用哪个用户的公钥加密,填写邮箱地址。
- `file` 是要加密的文件路径。
导入他人公钥
并使用他人公钥加密文件,发给他人用私钥解密
导入公钥
gpg --import pub.key
解密
gpg -o file -d file.gpg
说明:
- `-o file` 指定解密后的文件输出路径。
- `-d` 是 `--decrypt` 的缩写,表示使用解密模式。
- `file.gpg` 是要解密的文件路径。
其他
导出公钥
gpg -o pub.key --export --armor <公钥 ID>
说明:
- `--armor` 选项会将导出的密钥转换为 ASCII 格式(文本格式)
- <公钥 ID>来自于gpg --list-keys 结果中,63EE开头那串字符
导出私钥
gpg -o private.key --export-secret-keys --armor <私钥 ID>
说明:需要输入生成密钥对时,那个复杂密码
导入密钥
gpg --import keyfile
说明:
公钥、私钥都这样
删除密钥
gpg --delete-key <公钥 ID>
gpg --delete-secret-key <私钥 ID>
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END