文件的加密(gpg与openssl)

gpg,非对称式加密,产生一个公钥和一个私钥。公钥常用来别人给我们信息加密,我们用私钥解密。加密后的文件除了我们没有人能够解开(包括加密人)。

一、创建密钥:
gpg --gen-key

[root@user1 ~]# gpg --gen-key

215044930.png

215059749.png

提示:我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动

鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

这个过程可能很长。

215113392.png

二、查看私钥
$ gpg --list-secret-key

[root@user1 ~]# gpg --list-secret-key

215125804.png

三、查看公钥

[root@user1 ~]# gpg --list-public-keys

215136499.png

四、公钥删除


$ gpg --delete-keys 标识名

[root@user1 ~]# gpg --delete-keys user1

五、私钥删除
$ gpg --delete-secret-keys 标识名

[root@user1 ~]# gpg --delete-secret-keys user1

六、公钥导出
$ gpg --export 标识名 > 导出文件名(多以asc为文件后缀)

[root@user1 ~]# gpg --export user1 > user.asc

[root@user1 ~]# vim user.asc

215152888.png

七、私钥导出
$ gpg --export-secret-key 标识名 > 导出文件名(多以asc为文件后缀)

[root@user1 ~]# gpg --export-secret-key user1 >user1.private.key.asc

[root@user1 ~]# vim user1.private.key.asc

215206503.png

八、密钥导入
$ gpg --import 密钥文件

在另一太电脑导入

[root@user2 ~]# gpg --import user.asc

[root@user2 ~]# gpg --list-public-keys

215218492.png

九、加密文件
$ gpg --recipient 标识名 --encrypt 文件名

[root@user2 ~]# gpg --recipient user1 --encrypt wordpress_v3.0.5-zh_CN.zip

215230972.png

十、解密文件

在自己的机器上解密
$ gpg --output 新文件名 --decrypt 加密文件名

[root@user1 ~]# gpg --output w.zip --decrypt wordpress_v3.0.5-zh_CN.zip.gpg

215242763.png

215253530.png

十一、修改密钥
$ gpg --edit-key 标识名

[root@user1 ~]# gpg --edit-key user1

215305865.png

openssl支持的加密算法很多,包括:bf,cast,des,des3,idea,rc2,rc5等及以上各种的变体,具体可参阅相关文档。

1.加密一个文件:

[root@user1 ~]# openssl enc -des -e -a -in install.log -out install.log.des

215321463.png

   输入密码之后,就会生成install.log.des文件,这个文件名是自己指定的,可以随意写。

   其中:

   enc表明你打算使用某个算法

   -des是具体使用的某个算法

   -e 表明要加密

   -a 同样是使用ASCII进行编码

   -in 要加密的文件名字

   -out 加密后的文件名字

   把生成的文件传到另一台机器后,执行如下命令进行解密

[root@user2 ~]# openssl enc -des -d -a -in install.log.des -out f1

215339964.png

215351625.png

   输入口令后,就可以得到解密后的文件了。

   其中

   -d表明要进行解密