From 776bf9e244b9fe0fdeafbc0739b4e8bf8098fe94 Mon Sep 17 00:00:00 2001 From: 7Wate Date: Tue, 25 Jan 2022 12:29:33 +0800 Subject: [PATCH] =?UTF-8?q?GPG=20=E7=AE=80=E6=98=8E=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/密码/GPG/GPG 简明笔记.md | 195 ++++++++++++++++++++++++++++++++++ docs/工作/反向面试.md | 30 +++--- 2 files changed, 210 insertions(+), 15 deletions(-) create mode 100644 docs/密码/GPG/GPG 简明笔记.md diff --git a/docs/密码/GPG/GPG 简明笔记.md b/docs/密码/GPG/GPG 简明笔记.md new file mode 100644 index 00000000..6205b668 --- /dev/null +++ b/docs/密码/GPG/GPG 简明笔记.md @@ -0,0 +1,195 @@ +--- +id: GPG简明笔记 +title: GPG简明笔记 +data: 2022年1月25日 +--- + +## 简介 + +GnuPG(GNU Privacy Guard,GPG)是一款非对称加密的开源软件,它是PGP加密软件的满足GPL协议的实现。GnuPG依照由IETF制定的en:OpenPGP技术标准设计。GnuPG是用于**加密、数字签章**及产生非对称匙对的软件。GPG 兼容 PGP(Pretty Good Privacy)的功能。 + +如果你想发送加密信息,首先你要得到接收者的公钥,然后通过该公钥加密传输,接收者使用私钥就可解密并读取文件,同时也可以在公共网络用数字签章表明身份和安全性。 + +## GPG + +### 安装 + +linux 默认安装 GPG,windows 和 mac 安装方法大同小异。 + +### 配置 + +``` +# GPG 配置文件介绍 +~/.gnupg - 配置目录 +~/.gnupg/gpg.conf – 配置文件 +~/.gnupg/trustdb.gpg – 信任库 +~/.gnupg/pubring.gpg – 公钥库 +~/.gnupg/secring.gpg – 私钥库 +``` + +### 生成密钥 + +``` +gpg --gen-key +``` + +``` +1.请选择您要使用的密钥种类: + (1) RSA and RSA (default) + (2) DSA and Elgamal + (3) DSA (仅用于签名) + (4) RSA (仅用于签名) +您的选择? 1 + +2.RSA 密钥长度应在 1024 位与 4096 位之间。 +您想要用多大的密钥尺寸?(2048)4096 +您所要求的密钥尺寸是 4096 位 +请设定这把密钥的有效期限。 + 0 = 密钥永不过期 + = 密钥在 n 天后过期 + w = 密钥在 n 周后过期 + m = 密钥在 n 月后过期 + y = 密钥在 n 年后过期 +密钥的有效期限是?(0) 0 +密钥永远不会过期 +以上正确吗?(y/n)y + + +3. You need a user ID to identify your key; the software constructs the user ID +from the Real Name, Comment and Email Address in this form: + "Heinrich Heine (Der Dichter) " + +真实姓名:zhouzhongping +电子邮件地址:zhouzhongping@7wate.com +注释:测试使用 +您正在使用‘utf-8’字符集。 +您选定了这个用户标识: + “zhouzhongping (测试使用) ” + +4.更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?o + +5.您需要一个密码来保护您的私钥。 + +我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动 +鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。 +``` + +根据提示结合需求填写,生成 GPG 密钥。 + +## 常用命令 + +### 查看 + +公钥 + +``` +gpg --list-keys +gpg -k +``` +私钥 + +``` +gpg --list-secret-keys +gpg -K +``` + +### 导出 + +公钥 + +``` +gpg --armor --output public-key.txt --export [用户ID] +``` + +私钥 + +``` +gpg --armor --output private-key.txt --export-secret-keys [用户ID] +``` + +*--armor 生成 asc 后缀的 ASCII 类型的文本文件,否则生成 gpg 后缀的二进制文件* + +### 导入 + +本地公钥文件 + +``` +gpg --import [密钥文件] +``` + +服务器公钥文件 + +``` +gpg --keyserver [服务器] --search-keys [用户ID] +``` + +### 公布 + +发布至公开服务器 + +``` +gpg --send-keys [用户ID] --keyserver [服务器] +``` + +发布用户指纹 +``` +gpg --fingerprint [用户ID] +``` + +### 删除 + +删除指定公钥 + +``` +gpg --delete-key [用户id] +``` + +删除指定密钥 + +``` +gpg --delete-secret-keys [用户id] +``` + +吊销指定密钥 + +## 加密/解密 + +加密文件 + +``` +gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt +``` + +解密文件 + +``` +gpg --decrypt demo.en.txt --output demo.de.txt +gpg demo.en.txt +``` + +签名文件(GPG 格式) + +``` +gpg --sign test.txt +``` + +签名文件(ASCII 格式) + +``` +gpg --clearsign test.txt +``` + +生成单独签名 + +``` +gpg -a --detach-sign test.txt +``` + +*-a 生成 ASCII 格式* + +验证签名 + +``` +gpg --verify test.txt.asc test.txt +``` + diff --git a/docs/工作/反向面试.md b/docs/工作/反向面试.md index edd9d504..77267f12 100644 --- a/docs/工作/反向面试.md +++ b/docs/工作/反向面试.md @@ -32,7 +32,7 @@ data: 2022年1月22日 CI/CD (持续集成系统) 也不一定保证交付时间会很短。 -# 职责 +### 职责 - On-call (电话值班)的计划或者规定是什么?值班或者遇到问题加班时候有加班费吗? - 我的日常工作是什么? @@ -53,7 +53,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 我入职的岗位是新增还是接替之前离职的同事?(是否有技术债需要还)?(zh) - 入职之后在哪个项目组,项目是新成立还是已有的?(zh) -# 技术 +### 技术 - 公司常用的技术栈是什么? - 你们怎么使用源码控制系统? @@ -78,7 +78,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 你们的数据库是怎么进行版本控制的?(zh) - 业务需求有没有文档记录?是如何记录的?(zh) -# 团队 +### 团队 - 工作是怎么组织的? - 团队内 / 团队间的交流通常是怎样的? @@ -101,7 +101,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 公司技术团队的架构和人员组成?(zh) - 团队内开发、产品、运营哪一方是需求的主要提出方?哪一方更强势?(zh) -# 问未来的同事 +### 问未来的同事 - 开发者倾向于从哪里学习? - 你对在这里工作最满意的地方是? @@ -110,7 +110,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 团队最老的成员在这里多久了? - 在小团队中,有没有出现成员性格互相冲突的情况?最后是如何解决的? -# 公司 +### 公司 - 公司为什么在招人?(产品发展 / 新产品 / 波动...) - 有没有会议 / 旅行预算?使用的规定是什么? @@ -136,14 +136,14 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 大家为什么会喜欢这里?(zh) - 公司的调薪制度是如何的?(zh) -# 社会问题 +### 社会问题 - 你们关于多元化招聘什么看法? - 你们的公司文化如何?你认为有什么空白么? - 这里的工作生活平衡地怎么样? - 公司对气候变化有什么态度吗? -# 冲突 +### 冲突 - 不同的意见如何处理? - 如果被退回了会怎样?(“这个在预计的时间内做不完”) @@ -154,7 +154,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 如果在公司内你的同事因涉嫌性侵犯他人而被调查,请问你会如何处理? - 假设我自己很不幸是在公司内被性侵的受害者,在公司内部有没有争取合法权益的渠道? -# 商业 +### 商业 - 你们现在盈利吗? - 如果没有的话,还需要多久? @@ -166,7 +166,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 你们的竞争优势是什么? - 公司未来的商业规划是怎样的?有上市的计划吗?(zh) -# 远程工作 +### 远程工作 - 远程工作和办公室工作的比例是多少? - 公司提供硬件吗?更新计划如何? @@ -176,12 +176,12 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 多久需要去一次办公室? - 公司的会议室是否一直是视频会议就绪的? -# 办公室布局 +### 办公室布局 - 办公室的布局如何?(开放的 / 小隔间 / 独立办公室) - 有没有支持 / 市场 / 或者其他需要大量打电话的团队在我的团队旁边办公? -# 终极问题 +### 终极问题 - 该职位为何会空缺? - 公司如何保证人才不流失? @@ -189,7 +189,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 你最开始为什么选择了这家公司? - 你为什么留在这家公司? -# 待遇 +### 待遇 - 如果有奖金计划的话,奖金如何分配? - 如果有奖金计划的话,过去的几年里通常会发百分之多少的奖金? @@ -199,7 +199,7 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 有额外商业保险吗?例如人寿保险和额外的养老/医疗保险? - 更换工作地点,公司付费吗? -# 休假 +### 休假 - 带薪休假时间有多久? - 病假和事假是分开的还是一起算? @@ -209,14 +209,14 @@ CI/CD (持续集成系统) 也不一定保证交付时间会很短。 - 无薪休假政策是什么样的? - 学术性休假政策是怎么样的? -# 其他资源 +### 其他资源 Find more inspiration for questions in: - [The Joel Test: 12 Steps to Better Code](https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/) by Joel Spolsky - [Questions I'm asking in interviews](https://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/) by Julia Evans -# License +### License [![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](https://creativecommons.org/licenses/by-sa/4.0/)