首页 > 编程知识 正文

对称加密技术加密解密过程,数字信封的加密解密过程

时间:2023-05-06 19:58:20 阅读:241005 作者:2412

GPG加密解密过程 一、Linux系统下 1.安装

yum安装

[root@POC-ORACLE ~]# yum install gnupg

下载安装包安装

https://www.gnupg.org/download/index.en.html

查看gpg帮助

[root@POC-ORACLE ~]# gpg --help gpg (GnuPG) 2.0.14libgcrypt 1.4.5Copyright (C) 2009 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://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.......支持的算法:公钥:RSA, ELG, DSA对称加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224压缩:不压缩, ZIP, ZLIB, BZIP2语法:gpg [选项] [文件名]签名、检查、加密或解密默认的操作依输入数据而定指令:-s, --sign make a signature--clearsign make a clear text signature-b, --detach-sign 生成一份分离的签名-e, --encrypt 加密数据-c, --symmetric 仅使用对称加密-d, --decrypt 解密数据(默认)--verify 验证签名-k, --list-keys 列出密钥--list-sigs 列出密钥和签名--check-sigs 列出并检查密钥签名--fingerprint 列出密钥和指纹-K, --list-secret-keys 列出私钥--gen-key 生成一副新的密钥对--delete-keys 从公钥钥匙环里删除密钥--delete-secret-keys 从私钥钥匙环里删除密钥--sign-key 为某把密钥添加签名--lsign-key 为某把密钥添加本地签名--edit-key 编辑某把密钥或为其添加签名--gen-revoke 生成一份吊销证书--export 导出密钥--send-keys 把密钥导出到某个公钥服务器上--recv-keys 从公钥服务器上导入密钥--search-keys 在公钥服务器上搜寻密钥--refresh-keys 从公钥服务器更新所有的本地密钥--import 导入/合并密钥--card-status 打印卡状态--card-edit 更改卡上的数据--change-pin 更改卡的 PIN--update-trustdb 更新信任度数据库--print-md print message digests--server run in server mode选项:-a, --armor 输出经 ASCII 封装-r, --recipient USER-ID encrypt for USER-ID-u, --local-user USER-ID use USER-ID to sign or decrypt-z N set compress level to N (0 disables)--textmode 使用标准的文本模式-o, --output FILE write output to FILE-v, --verbose 详细模式-n, --dry-run 不做任何改变-i, --interactive 覆盖前先询问--openpgp 行为严格遵循 OpenPGP 定义(请参考在线说明以获得所有命令和选项的完整清单)范例:-se -r jadkn [文件名] 为 jadkn 这个收件人签名及加密--clearsign [文件名] 做出明文签名--detach-sign [文件名] 做出分离式签名--list-keys [某甲] 显示密钥--fingerprint [某甲] 显示指纹显示帮助安装成功 2.生成密钥 [root@POC-ORACLE ~]# gpg --gen-key gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.请选择您要使用的密钥种类:(1) RSA and RSA (default)(2) DSA and Elgamal(3) DSA (仅用于签名)(4) RSA (仅用于签名)您的选择? 1RSA 密钥长度应在 1024 位与 4096 位之间。您想要用多大的密钥尺寸?(2048)2048您所要求的密钥尺寸是 2048 位请设定这把密钥的有效期限。0 = 密钥永不过期<n> = 密钥在 n 天后过期<n>w = 密钥在 n 周后过期<n>m = 密钥在 n 月后过期<n>y = 密钥在 n 年后过期密钥的有效期限是?(0) 0密钥永远不会过期以上正确吗?(y/n)yYou need a user ID to identify your key; the software constructs the user IDfrom the Real Name, Comment and Email Address in this form:"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"真实姓名:lyzkey电子邮件地址:lyzkey@qq.com注释:您选定了这个用户标识:“lyzkey <lyzkey@qq.com>”更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?o您需要一个密码来保护您的私钥。

输入两次密码can't connect to `/root/.gnupg/S.gpg-agent': 没有那个文件或目录我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。几分钟后完成生成gpg: 密钥 10A20444 被标记为绝对信任公钥和私钥已经生成并经签名。gpg: 正在检查信任度数据库gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型gpg: 深度:0 有效性: 1 已签名: 0 信任度:0-,0q,0n,0m,0f,1upub 2048R/10A20444 2018-04-29密钥指纹 = 9259 721A 61DA 6C18 3DBA 05CE 9068 BA24 10A2 0444uid lyzkey <lyzkey@qq.com>sub 2048R/4B7C31FC 2018-04-29

另一台服务器上同样创建密钥

[root@POC-APP ~]# gpg --list-keys/root/.gnupg/pubring.gpg------------------------pub 2048R/F98FA558 2017-12-07uid lyzkk <lyzkk@qq.com>sub 2048R/B3A4A822 2017-12-07 3.导出公钥 [root@POC-APP ~]# gpg --armor --output lyzkk.asc --export F98FA558F98FA558 为pub key的ID

公钥导出文件 可vi查看

[root@POC-APP ~]# ll lyzkk.asc-rw-r--r--. 1 root root 1703 12月 7 18:29 lyzkk.asc

4.导入公钥

将公钥发布,导入另一台服务器

[root@POC-ORACLE ~]# gpg --import lyzkk.asc gpg: 密钥 F98FA558:公钥“lyzkk <lyzkk@qq.com>”已导入gpg: 合计被处理的数量:1gpg: 已导入:1 (RSA: 1)

5.文件加密

给文件不加签,加密

[root@POC-ORACLE ~]# gpg --recipient lyzkk --output install.log.asc --encrypt install.loggpg: B3A4A822:没有证据表明这把密钥真的属于它所声称的持有者pub 2048R/B3A4A822 2017-12-07 lyzkk <lyzkk@qq.com>主钥指纹: EE13 B668 8956 7766 EEF7 6DE2 67F5 B833 F98F A558子钥指纹: B6DA 032C 47B4 649E 1046 8CE4 FB2C 55EF B3A4 A822这把密钥并不一定属于用户标识声称的那个人。如果您真的知道自己在做什么,您可以在下一个问题回答 yes。无论如何还是使用这把密钥吗?(y/N)y


上传到有对应私钥解密的服务器

6.文件解密 [root@POC-APP ~]# gpg --decrypt install.log.asc --output install.log用法:gpg [选项] --decrypt [文件名]

参数顺序不能反

[root@POC-APP ~]# gpg --output install.log --decrypt install.log.asc 您需要输入密码,才能解开这个用户的私钥:“lyzkk <lyzkk@qq.com>”2048 位的 RSA 密钥,钥匙号 B3A4A822,建立于 2017-12-07 (主钥匙号 F98FA558)can't connect to `/root/.gnupg/S.gpg-agent': 没有那个文件或目录gpg: 由 2048 位的 RSA 密钥加密,钥匙号为 B3A4A822、生成于 2017-12-07“lyzkk <lyzkk@qq.com>”

解密后的文件

7.删除密钥

删除钥匙前需要先删除私钥

[root@POC-ORACLE ~]# gpg --delete-key lyzkeygpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.gpg: 公钥“lyzkey”有对应的私钥!gpg: 请先使用“--delete-secret-keys”选项来删除它。[root@POC-ORACLE ~]# gpg --delete-secret-keys lyzkeygpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.sec 2048R/CCB014D0 2018-04-28 lyzkey <lyzkey@qq.com>要从钥匙环里删除这把密钥吗?(y/N)y这是一把私钥!――真的要删除吗?(y/N)y[root@POC-ORACLE ~]# gpg --delete-keys lyzkeygpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.pub 2048R/CCB014D0 2018-04-28 lyzkey <lyzkey@qq.com>要从钥匙环里删除这把密钥吗?(y/N)y 8.涉及命令 1、生成密钥对:gpg --gen-key 为用户生成新密钥对。需提供:密钥类型(默认为RSA/RSA);密钥长度(以位为单位,越长越强);过期时间(以防密钥损坏);填:名称、电子邮箱、标识密钥所有者的注释;密码短语(必须提供,如果私钥被盗,将无法使用)。 2、列出公钥:gpg --list-keys 列出所拥有的公钥:他们自己的公钥以及从与之通信的其他人那里导入的任何公钥。3、导出公钥:gpg –export –armor key-id -o file.key 将公钥导出至文件,以便于其他人使用。–armor选项以文本形式显示输出,而非二进制格式。key-id是电子邮箱地址或在–list-keys的pub行中列出的八位十六进制数。4、导入公钥:gpg –import file.key 从发送给您的密钥文件中导入其他人的公钥5、加密文件:gpg –encrypt –armor -r key-id file 用key-id的公钥加密消息。如果未提供-r key-id,命令将提示收件人输入。默认输出文件为file.asc. 6、解密文件:gpg –decrypt file 二、Windows系统下 1.安装

https://www.gnupg.org/download/index.en.html
https://download.csdn.net/download/qq_21271511/12434919

安装对应密钥管理软件

2.新建密钥对


输入信息




3.导入公钥


导入完成



公钥导入成功

4.加密文件

点击加密按钮,选择加密文件

选择为他人加密



加密成功

5.解密文件

用linux端私钥解密

[root@POC-APP ~]# gpg --output codetemplates.xml --decrypt codetemplates.xml.gpg

解密成功

6.删除密钥

右键删除即可

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。