解密时如何覆盖已经存在的解密后文件,而不是弹出询问框是否覆盖

初识GPG

加解密实现

  • gui加解密
  • 生成密钥
  • 命令行方式加解密
  • 信任度设置
  • 方法一
  • 方法二
  • 参考链接

解密时如何覆盖已经存在的解密后文件,而不是弹出询问框是否覆盖

初识GPG

首先下载gpg套件,https://gpgtools.org/

安装完成后首先建立公私钥,建立好后如下图:

gg lua 在线加密 gg修改加密_加解密

加解密实现

gui加解密

最简单的验证方法就是通过gpg的gui进行对文件的加解密,就是在要加密的文件上右键,选择服务,选择open pgp:encrypt file,然后会跳出一个弹框,选择密钥,输入密码即可成功加密,解密的话直接双击刚才加过密的文件即可

生成密钥

gpg --gen-key

输入真实姓名和邮箱以及密码就会创建成功了

命令行方式加解密

加密命令一:把桌面上报表.xlsx文件用xmliu的公钥进行加密

gpg --recipient xmliu --output aa.xlsx --encrypt Desktop/报表.xlsx

解密命令一:

gpg --local-user xmliu --output aa2.xlsx --decrypt aa.xlsx
gpg: 由 4096 位的 RSA 密钥加密,钥匙号为 DC1CCF1EA53BE721、生成于 2018-03-08
      “xmliu (xmrp) <diyangxia@163.com>”

加密命令二:

gpg -e -r xmliu Desktop/ab.txt

然后在同目录下会生成一个加密后的文件,文件名为ab.txt.gpg

解密命令二:添加-o参数,就是output的意思,不加的话默认是不输出到文件,直接输出到控制台显示出来

gpg -o Desktop/ab.txt -d Desktop/ab.txt.gpg

正常来说,加解密不应该在同一个终端进行,所以为了测试方便,把刚才加密后的文件ab.txt.gpg通过scp上传到namenode上,也就是局域网内的另外一台机器

然后在namenode上进行对该文件的解密 首先需要在本机上导出私钥 导出私钥命令:–export-secret-keys后面需不需要加密钥id还不太清除,不过在钥匙环里只有我这一个密钥的时候加不加都没有影响

gpg --armor --output private-key.txt --export-secret-keys

按回车输入密码

顺便看看导出公钥的命令

gpg --armor --output public-key.txt --export xmliu

然后在namenode上导入私钥:

gpg --import private-key.txt

执行解密命令

gpg -d Desktop/ab.txt.gpg

gg lua 在线加密 gg修改加密_Desktop_02

输入密钥的密码即可

这里如果想做成解密自动化的话,可以使用passphrase命令,为了不产生交互,可以把解密密钥的密码设置成空,在密钥编辑模式下输入:

password # 如果提示要有私钥才能这么做。就说明这个密钥没有私钥

如果不设置空的话,操作方法参考这里 gpg 自动解密 以及解决 crontab 下运行 gpg 文件加解密问题

echo "password" | gpg --batch --passphrase-fd 0 --output <outputFile> --decrypt <decryptFile.gpg>

另外一种方法,参见烂泥:gpg加解密软件学习

gpg –no-use-agent –passphrase=hahaha -q –no-tty -d file.txt.gpg

查看密钥列表:

gpg --list-key

私钥列表:

gpg --list-secret-key

删除指定密钥,删除公钥前要先删除私钥:

gpg --delete-key

删除私钥:

gpg --delete-secret-key xmliu

信任度设置

关于对银行提供的公钥进行信任度处理的步骤:

方法一

1、导入公钥

gpg --import example.public

2、编辑公钥,进入密钥编辑模式

gpg --edit-key example

3、进入gpg编辑模式   3.1 签名

gpg> sign  # 使用已有的密钥对导入进来对密钥进行签名

  3.2 信任度设置

gpg> trust  # 选择信任度,一般4或者5

  3.3 保存

gpg> save  # 保存退出编辑模式

方法二

直接使用参数来强制信任

gpg -r mygpg -e abc.txt --trust-model always

经测试,–trust-model always这个参数无效,也就是方法二无效

参考链接

[1]. GPG入门指南(加密/签名) [2]. GPG入门教程 [3]. GPG 加密解密简明教程 [4]. 使用 GPG 对数据进行加密解密签名 [5]. 使用GPG对文件进行加密解密批处理