文档章节

使用 OpenSSL 对文件进行加密和解密

羊驼君
 羊驼君
发布于 2016/11/17 15:51
字数 714
阅读 1132
收藏 38

我们在平时的 Linux 运维管理的时候,经常会进行各种数据备份任务。将数据导出然后打包。通常在安全性要求比较高的环境下,我们可以借助 OpenSSL 工具对打包后的数据进行加密,这样能进一步的保障数据的安全性。

OpenSSL 使用密码方式加密或解密文件

1. 使用 openssl 加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件)

# openssl enc -e -aes256 -in data.zip -out back.zip

解释: enc 表示对文件进行对称加密或解密, -e 表示对一个文件进行加密操作,-aes256 表示使用 aes256 算法进行加密,-in 表示需要被加密的文件,-out 表示加密之后生成的新文件。加密过程中会要求输入一个加密密码,重复输入两次即可完成对文件的加密

2. 使用 openssl 解密一个文件 (back.zip 为加密的文件,data.zip 为解密之后的文件)

# openssl enc -d -aes256 -in back.zip -out data.zip

解释: enc 表示对文件进行对称加密或解密, -d 表示对文件进行解密操作,-aes256 表示使用 aes256 算法进行解密,-in 表示需要被解密的文件,-out 表示解密之后生成的新文件,解密一个文件的时候会要求输入加密文件时设置的密码才能进行解密。

OpenSSL 使用密钥方式加密或解密文件

1. 首先需要使用 openssl 生成一个 2048 位的密钥 rsa.key 文件 (rsa.key 密钥文件中包含了私钥和公钥)

# openssl genrsa -out rsa.key 2048

2. 然后从 rsa.key 密钥文件中提取出公钥 pub.key

# openssl rsa -in rsa.key -pubout -out pub.key

3. 使用 pub.key 公钥加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件)

# openssl rsautl -encrypt -inkey pub.key -pubin -in data.zip -out back.zip

4. 使用 rsa.key 私钥解密一个文件 (back.zip 为加密的文件,data.zip 为解密之后的文件)

# openssl rsautl -decrypt -inkey rsa.key -in back.zip -out data.zip

最后我们使用 OpenSSL 工具,对所有备份的数据文件进行加密存储,就能保证业务系统数据进行保护,防止泄漏。我们也可以使用其他的加密工具比如 GPG,VeraCrypt,trueCrypt 这些工具来对数据进行加密,但相比而言,使用 OpenSSL 更加方便,因为几乎每种 Linux 发行版都预装了 OpenSSL 软件包。

© 著作权归作者所有

共有 人打赏支持
羊驼君
粉丝 21
博文 3
码字总数 2357
作品 0
苏州
程序员
加载中

评论(1)

szf
szf
挺实用的!
vc++网络安全编程范例(19)实现数字信封打包与拆解

数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法。 PKCS#7中将数字信封作为术语进行定义,而在正文中对进行了如下解释:数字信封包含被加密的内容和被...

junwong
2012/03/09
0
0
VC++网络安全编程范例(2)-创建自签名证书

数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,...

junwong
2012/03/09
0
0
Android外部文件加解密及应用实践

有这样的应用场景,当我们把一些重要文件放到asset文件夹中时,把.apk解压是可以直接拿到这个文件的,一些涉及到重要信息的文件我们并不想被反编译拿去,这个时候需要先对文件进行加密,然后...

C6C
05/08
0
0
VC++网络安全编程范例(4)-创建自签名证书打包与拆解

数字信封包含被加密的内容和被加密的用于加密该内容的密钥。虽然经常使用接收方的公钥来加密“加密密钥”,但这并不是必须的,也可以使用发送方和接收方预共享的对称密钥来加密。当接收方收到...

junwong
2012/03/09
0
0
用openssl对文件加密及解密

Openssl是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。 下面我将单介绍使用Openssl进行文件的对称...

独钓渔
2014/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway真的有那么差吗?

前言 Spring Cloud从一开始最受大家质疑的就是网关性能,那是由于Spring Cloud最初选择了使用Netflix几年前开源的Zuul作为基础,而高性能版的Zuul 2在经过了多次跳票之后,对于Spring这样的整...

Java小铺
46分钟前
1
0
SpringBoot远程调试,远程debug你的线上项目

开发环境中代码出错了,可以利用IDE的debug功能来进行调试。那线上环境出错呢? 一、假设我们的项目是部署在tomcat中,那我们就需要对tomcat进行一定对配置,配置如下。 1. windows系统中,找...

nonnetta
51分钟前
0
0
JAVA秒杀优化方向

秒杀优化方向 将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小,我们可以通过限流、...

小贱是个程序员
58分钟前
0
0
C# 统计字符串中大写字母和小写字母的个数

static void Main() { int count1 = 0; int count2 = 0; Console.WriteLine("请输入字符串"); string str = Convert.ToString(Consol......

熊二的爸爸是谁
今天
0
0
分布式服务框架之远程通讯技术及原理分析

在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是...

老道士
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部