GPG使用简介

gpg简介:

官网:

https://gnupg.org/

安装目录:

/usr/local/gnupg-2.4/bin

工作目录:

/Users/jiangzhehao/.gnupg

gpg生成秘钥对:

生成gpg秘钥对:

$ gpg --full-generate-key 
gpg (GnuPG) 2.4.5; 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: keybox '/Users/jiangzhehao/.gnupg/pubring.kbx' created
Please select what kind of key you want:
   (1) RSA and RSA
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (9) ECC (sign and encrypt) *default*
  (10) ECC (sign only)
  (14) Existing key from card
  
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.

What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
      
Key is valid for? (0) 10y
Key expires at 六  3/25 14:19:33 2034 CST

Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: e2a5e
Email address: 
Comment: 
You selected this USER-ID:
    "e2a5e"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /Users/jiangzhehao/.gnupg/trustdb.gpg: trustdb created
gpg: directory '/Users/jiangzhehao/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/Users/jiangzhehao/.gnupg/openpgp-revocs.d/88B586B81CA56DD01D3E79D67108D825CAC56E22.rev'
public and secret key created and signed.

pub   rsa4096 2024-03-27 [SC] [expires: 2034-03-25]
      88B586B81CA56DD01D3E79D67108D825CAC56E22
uid                      e2a5e
sub   rsa4096 2024-03-27 [E] [expires: 2034-03-25]

显示公钥私钥列表:

公钥:

$ gpg --list-keys
/Users/jiangzhehao/.gnupg/pubring.kbx
-------------------------------------
pub   rsa4096 2024-03-27 [SC] [expires: 2034-03-25]
      88B586B81CA56DD01D3E79D67108D825CAC56E22
uid           [ultimate] e2a5e
sub   rsa4096 2024-03-27 [E] [expires: 2034-03-25]

pub   ed25519 2024-03-27 [SC] [expires: 2027-03-27]
      F7E54EB67CE8D015C36B422B00950DA72673C2B9
uid           [ultimate] yuyongxr
sub   cv25519 2024-03-27 [E] [expires: 2027-03-27]

私钥:

$ gpg --list-secret-keys
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: next trustdb check due at 2027-03-27
/Users/jiangzhehao/.gnupg/pubring.kbx
-------------------------------------
sec   rsa4096 2024-03-27 [SC] [expires: 2034-03-25]
      88B586B81CA56DD01D3E79D67108D825CAC56E22
uid           [ultimate] e2a5e
ssb   rsa4096 2024-03-27 [E] [expires: 2034-03-25]

sec   ed25519 2024-03-27 [SC] [expires: 2027-03-27]
      F7E54EB67CE8D015C36B422B00950DA72673C2B9
uid           [ultimate] yuyongxr
ssb   cv25519 2024-03-27 [E] [expires: 2027-03-27]

删除指定的秘钥对:

其实只是删除了私钥。

$ gpg --delete-secret-keys F7E54EB67CE8D015C36B422B00950DA72673C2B9
gpg (GnuPG) 2.4.5; 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.


sec  ed25519/00950DA72673C2B9 2024-03-27 yuyongxr

Delete this key from the keyring? (y/N) y
This is a secret key! - really delete? (y/N) y

gpg加解密:

gpg使用指定公钥进行加密:

$ gpg -e 1.txt 
You did not specify a user ID. (you may use "-r")

Current recipients:

Enter the user ID.  End with an empty line: e2a5e

Current recipients:
rsa4096/7F191C8CDF4C5B1D 2024-03-27 "e2a5e"

Enter the user ID.  End with an empty line: 

或者

$ gpg -e -r e2a5e 1.txt

使用效果如下:

原文:

$ cat 1.txt
123

密文:

$ cat 1.txt.gpg 
?
??}??)??}?4y.3I?=G??M???eRZإp?\Eh?,?ѫ̄+?uR]є^??y??h4?L*??lx?M?jی?f??Cr^jz???ws?b+ד??[??5?5?????k?4B??Kُ?v?-d????W?7?A???$u?8????(,?侗`m*y?}Kq?j9??V?????Wv?
                                 A|??St<Ұ??1???w?.3@?
'hS?҃4b??0apx??kf,??;F??vy?r?|???>????XV??:Ƕ?;д??J???w:2r}?{?"???IW?P??9V{"?wX? ??l4??i??H??8Q?98*?Z?١(??!?V¢>????$???Q?)?߃5r???3C;??d???]o?d??&???L??E?3;????)???
                                         ??c??Xy?19?!????EAsE֤ݣ'-?1 ??{????e"??N	?؊?q???Y??
????_`??g?_????E???
                   ?qg?\
                        u&???|??]??mX???㞌%   

gpg解密文件:

$ gpg -d 1.txt.gpg 
gpg: encrypted with rsa4096 key, ID 7F191C8CDF4C5B1D, created 2024-03-27
      "e2a5e"
123

或者指定秘钥对。

$ gpg -d -r e2a5e 1.txt.gpg
gpg: encrypted with rsa4096 key, ID 7F191C8CDF4C5B1D, created 2024-03-27
      "e2a5e"
123

gpg加密数据:

$ echo "123" | gpg -e -r e2a5e          
?
???t???کC(?N???ڙ??J5??4?Fu??=:yJqyt??>??f?ö??˄M????h?eR????Ze????۸?=Qཁe??gj7?g8??1??]??!?m?;-??=N??1??M?٧'[5??Nm???$O?iv3??y?|w?=?٩????z^`Ψ{d|??S?W_\?????"+F???c???+ڍ-?????4??-??s?ܘ;??A̛?:??b??Y2??/??f?c*?F?Qso??ތ?‡?U?t?ɷ?O?uYIl?????CI?!	?½=?z??O?ߕ??W>??M????7<?9?k?ﱇ!59???|?]?*8???K?ſ
                                              P
                                               ˹7l_$??v??y64&ERՕ??w/\K?n&???v?3r9?^??4?v??ҋ?????|??
?S
  RP?
?(cq???ҕo?6??0?H????Ij??s??
                           ?>??.)jeo??I;?J?:?c?=??I	]?T^??[R
                                                                j?ͱ????0????+??
u???t?"`	??o?tm?i????3?[*?R?;?M?%       

或者可以将加密后的内容重定向到一个文件。

# jiangzhehao @ Devil in ~/Downloads [14:36:43] 
$ echo "123" | gpg -e -r e2a5e > 123.txt

# jiangzhehao @ Devil in ~/Downloads [14:36:51] 
$ cat 123.txt
?
 ??L[???濫+p???tN0??R??IP???U?5?o'??Ji^?6l??L8U??j??h?h
??UkV?̮?)~o?x??u%??=JX?1n?                              ??Xf?{?*SD????FYoy??/G??????$GAF????mo?Ă?vtl??W???8???
   ?]Z???V?O???????lf$?VM???%ێv?E?Y?z(????d??c???D????8???qY??	ޖ?oLk?0E#?G?Ƶ?cR4n??V????Z?T??r??A\?z
?g?/rz?"f????e@??
L?6c"/M?H??-???|?A??T?(?6W?<\J????6w?^??ь???\?[?Q???t???d?M??(Y4<??2?U???
                                            ?u?aO'?$?????%#??>N=w/?g??;?Ļ?l?gӘ{?ĥh??D?68??O?Q+??ԛ~kS????l?
?ML?????H???H\?HN??I	+??[??_??k??bq|??XwE2??? r??>????3??Z???N6Ʀf?r??ϐ??l>
                                                                             %        

gpg解密数据:

$ cat 123.txt | gpg -d -r e2a5e
gpg: encrypted with rsa4096 key, ID 7F191C8CDF4C5B1D, created 2024-03-27
      "e2a5e"
123

gpg签名和验证文件:

gpg对文件进行签名:

# jiangzhehao @ Devil in ~/Downloads [14:41:21] 
$ gpg --sign test.txt 

# jiangzhehao @ Devil in ~/Downloads [14:41:32] 
$ ls test*
test.txt     test.txt.gpg

# jiangzhehao @ Devil in ~/Downloads [14:41:41] 
$ cat test.txt.gpg 
?%??n"?test.txtf??test
?!?????m?>y??%??n"f??
5?3Ag(??I??i?????D??e?5i?oń?F??Y?B??\?x?.??OAk????V?N???Vq??,???zk?T?6ھvYs?|?yp??e?x?V?o"??S~???z?????wpA+P,??Kp???8?q??[cxd?Zt?w?????j?8???M`???+???V??W&(_??Y??p?CcU6dt??%JZ-x?????G?D????(0b!?h?b????:Ӱ?}?,J???ǛV??????]s?b*	a??w(n?w'?a??esr!H޾?u](%?ę????p-?[??j??D?|???=?????|??qq?dG@ܧ?+?UbV?`v
?z\<??bX???
*m ]??%#????b˳??ߵ?R???d?H?oN?㘫????a??X?=????J%?
???YY???TA^ky#?ʬ??x??c6D?
_?}x?(??W:??bR?#A?d?%     

gpg验证文件签名及解密

# jiangzhehao @ Devil in ~/Downloads [14:42:07] 
$ gpg --verify test.txt.gpg 
gpg: Signature made 三  3/27 14:41:31 2024 CST
gpg:                using RSA key 88B586B81CA56DD01D3E79D67108D825CAC56E22
gpg: Good signature from "e2a5e" [ultimate]

# jiangzhehao @ Devil in ~/Downloads [14:42:57] 

# jiangzhehao @ Devil in ~/Downloads [14:43:45] 
$ gpg --decrypt test.txt.gpg 
test
gpg: Signature made 三  3/27 14:41:31 2024 CST
gpg:                using RSA key 88B586B81CA56DD01D3E79D67108D825CAC56E22
gpg: Good signature from "e2a5e" [ultimate]

当然也可以使用-r参数指定秘钥

# jiangzhehao @ Devil in ~/Downloads [14:46:40] 
$ gpg --decrypt -r e2a5e test.txt.gpg
test
gpg: Signature made 三  3/27 14:41:31 2024 CST
gpg:                using RSA key 88B586B81CA56DD01D3E79D67108D825CAC56E22
gpg: Good signature from "e2a5e" [ultimate]

gpg秘钥管理:

导出公钥:

# jiangzhehao @ Devil in ~/Downloads [14:48:30] 
$ gpg --export -a "e2a5e" > public_key.asc

# jiangzhehao @ Devil in ~/Downloads [14:49:38] 
$ cat public_key.asc 
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=UQS7
-----END PGP PUBLIC KEY BLOCK-----

导入公钥:

$ gpg --import 693E8FC5CA467E29ABA8B0A8408201FBC00ADC82.asc 
gpg: key 408201FBC00ADC82: public key "SecureDrop (SecureDrop Submission Key)" imported
gpg: Total number processed: 1
gpg:               imported: 1

删除公钥:

# jiangzhehao @ Devil in ~/Downloads [14:59:28] 
$ gpg --list-key
/Users/jiangzhehao/.gnupg/pubring.kbx
-------------------------------------
pub   rsa4096 2024-03-27 [SC] [expires: 2034-03-25]
      88B586B81CA56DD01D3E79D67108D825CAC56E22
uid           [ultimate] e2a5e
sub   rsa4096 2024-03-27 [E] [expires: 2034-03-25]

pub   ed25519 2024-03-27 [SC] [expires: 2027-03-27]
      F7E54EB67CE8D015C36B422B00950DA72673C2B9
uid           [ultimate] yuyongxr
sub   cv25519 2024-03-27 [E] [expires: 2027-03-27]

pub   rsa4096 2021-07-12 [SC]
      693E8FC5CA467E29ABA8B0A8408201FBC00ADC82
uid           [ unknown] SecureDrop (SecureDrop Submission Key)
sub   rsa4096 2021-07-12 [E]


# jiangzhehao @ Devil in ~/Downloads [14:59:52] 
$ gpg --delete-keys yuyongxr
gpg (GnuPG) 2.4.5; 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.


pub  ed25519/00950DA72673C2B9 2024-03-27 yuyongxr

Delete this key from the keyring? (y/N) y

# jiangzhehao @ Devil in ~/Downloads [15:00:11] 
$ gpg --list-key            
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2034-03-25
/Users/jiangzhehao/.gnupg/pubring.kbx
-------------------------------------
pub   rsa4096 2024-03-27 [SC] [expires: 2034-03-25]
      88B586B81CA56DD01D3E79D67108D825CAC56E22
uid           [ultimate] e2a5e
sub   rsa4096 2024-03-27 [E] [expires: 2034-03-25]

pub   rsa4096 2021-07-12 [SC]
      693E8FC5CA467E29ABA8B0A8408201FBC00ADC82
uid           [ unknown] SecureDrop (SecureDrop Submission Key)
sub   rsa4096 2021-07-12 [E]

导出私钥:

# jiangzhehao @ Devil in ~/Downloads [15:07:10] C:2
$ gpg --export-secret-keys yyxr > private_key.asc 

# jiangzhehao @ Devil in ~/Downloads [15:07:28] 
$ cat private_key.asc 
??f?/	+?G@?L?	?x?
                   ?????d\?F?(yeY???
                                    ??[tI?)%H??*a?+???'?u?;?ϳ????(???8t/CpEƗu݋	??|b?V??x?ua+?E7?ݍI?n?x'?yyxr??
A!?L?	"?rd?v?G?9??7ᭊf?/	???
                                       "
	
       ?
????t%?j????'??@wXU?T?1+v/pOӺ6?
?ꒊ?2%??f?/
??~Z%%?g?+?̙?R?.??[???˼^M??!???????K????nu?J?e?{7??+????tt?????=	?7?
    ??Xm?zb?lO?K??˝?C?0?F??~
&!?L?	"?rd?v?G?9??7ᭊf?/
                         	???
	?9??7ᭊHf?~e?y'?P?Q?ФC?????J?JK???UP??	q??????qkH?????9???%  

导入私钥:

# jiangzhehao @ Devil in ~/Downloads [15:09:58] 
$ gpg --import private_key.asc 
gpg: key EE39C1BF37E1AD8A: "yyxr" not changed
gpg: key EE39C1BF37E1AD8A: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闲人*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值