全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 591|回复: 7
打印 上一主题 下一主题

[经验] 【教程】使用OpenSSL的非对称加密确保数据安全

[复制链接]
跳转到指定楼层
1#
发表于 2022-11-12 16:08:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
创建要备份的模拟数据文件

  1. $ mkdir -p ~/backup/2022-11-12 && cd ~/backup/2022-11-12
  2. $ fallocate -l 900M sample.txt
  3. $ echo "Hello, ansheng!" >> hello.txt
  4. $ cat hello.txt
  5. Hello, world!
  6. $ ls -lh
  7. total 901M
  8. -rw-r--r-- 1 root root   16 Nov 12 14:53 hello.txt
  9. -rw-r--r-- 1 root root 900M Nov 12 14:53 sample.txt
  10. $ cd ..
  11. $ tar zcf 2022-11-12.tar.gz 2022-11-12
  12. $ rm -fr 2022-11-12
复制代码


生成RSA密钥对

  1. openssl genrsa -out private.pem 4096
  2. openssl rsa -pubout -outform PEM -in private.pem -out public.pem
复制代码


生成一个用于加密的密码文件(keypass)

  1. openssl rand 256 > keypass
复制代码


使用公钥对keypass文件进行加密

  1. openssl rsautl -encrypt -pubin -inkey public.pem -in keypass -out keypass.enc
复制代码


使用keypass文件进行加密

  1. openssl enc -aes-256-cbc -pbkdf2 -salt -in 2022-11-12.tar.gz -out 2022-11-12.tar.gz.enc -pass file:./keypass
  2. # 删除不需要的源文件
  3. rm -f 2022-11-12.tar.gz keypass
复制代码


将整个备份目录用tar进行压缩打包形成tar.gz文件

  1. mkdir 2022-11-12
  2. mv keypass.enc 2022-11-12.tar.gz.enc 2022-11-12
  3. tar zcf 2022-11-12.tar.gz 2022-11-12
复制代码


本地解压tar.gz备份文件,先通过openssl解密keypass文件,然后再通过keypass解密备份文件

  1. tar xf 2022-11-12.tar.gz && rm -f 2022-11-12.tar.gz && cd 2022-11-12
  2. openssl rsautl -decrypt -inkey ../private.pem -in keypass.enc -out keypass
  3. openssl enc -d -aes-256-cbc -pbkdf2 -in 2022-11-12.tar.gz.enc -out 2022-11-12.tar.gz -pass file:./keypass
  4. tar xf 2022-11-12.tar.gz
复制代码


整个目录结构如下

  1. $ tree ~/backup
  2. /root/backup
  3. ├── 2022-11-12
  4. │   ├── 2022-11-12
  5. │   │   ├── hello.txt
  6. │   │   └── sample.txt
  7. │   ├── 2022-11-12.tar.gz
  8. │   ├── 2022-11-12.tar.gz.enc
  9. │   ├── keypass
  10. │   └── keypass.enc
  11. ├── private.pem
  12. └── public.pem

  13. 2 directories, 8 files
复制代码


查看hello.txt文件内容

  1. $ cat ~/backup/2022-11-12/2022-11-12/hello.txt
  2. Hello, ansheng!
复制代码

推荐
发表于 2022-11-12 17:53:06 | 只看该作者

要了解什么是GPG,就要先了解PGP。

1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。

https://www.ruanyifeng.com/blog/2013/07/gpg.html
2#
发表于 2022-11-12 16:17:46 | 只看该作者
不错,我用 gpg
3#
 楼主| 发表于 2022-11-12 16:24:53 | 只看该作者

我赞同
4#
发表于 2022-11-12 16:54:31 | 只看该作者
不懂密码学的人不要自己乱搞,建议用解决方案GPG
5#
发表于 2022-11-12 17:47:30 | 只看该作者

请问gpg是啥
7#
发表于 2022-11-12 17:54:02 | 只看该作者
庸人自扰   压缩包加密码即可
8#
发表于 2022-11-12 17:58:31 | 只看该作者
whiler 发表于 2022-11-12 17:53
要了解什么是GPG,就要先了解PGP。

1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP ...

多谢,很详细。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-1 08:40 , Processed in 0.062022 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表