Mac使用GPG加密文件

简介

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
喜欢就支持一下吧
点赞5 分享