前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openssl加密在数据库备份加密场景下的使用

openssl加密在数据库备份加密场景下的使用

原创
作者头像
保持热爱奔赴山海
发布2024-01-24 22:53:09
980
发布2024-01-24 22:53:09
举报
文章被收录于专栏:饮水机管理员饮水机管理员

需求背景

在linux上,需要对明文的备份文件进行加密存储。

备选方案

1、openssl+aes加密

2、gpg加密

出于最低成本考虑,最终选择了openssl+aes加密方式。

openssl+aes加密实操

加密方式如下:

代码语言:bash
复制
# 密码
encrypt_passwd="Abcd9876"

# 原始文件
original_file="devops-dba-dump_2024-01-24_backup"

# 加密后的文件
encrypted_file=${original_file}_encrypt

# 加密压缩DEMO
cat ${original_file} | gzip -c | openssl enc -aes-256-cbc -salt -pass pass:${encrypt_passwd} -out ${encrypted_file}

# 解密解压缩DEMO
# openssl enc -d -aes-256-cbc -salt -in ${encrypted_file} -pass pass:${encrypt_passwd} | gunzip > ${original_file}

注意:

对于高版本的openssl,如果使用 -salt 参数,可能会出现如下的告警:

代码语言:bash
复制
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.

这种情况下,可以再加个参数 -pbkdf2 -iter 10000 如下:

代码语言:bash
复制
cat ${original_file} | gzip -c | openssl enc -aes-256-cbc -salt -pbkdf2 -iter 1000 -pass pass:${encrypt_passwd} -out ${encrypted_file}

-pbkdf2 和 -iter 1000 选项则告诉 OpenSSL 使用 PBKDF2 密钥派生函数,并且进行1000次迭代,使得暴力破解更加困难。

集成到备份控制平台的思路

1、在backup-center 里面集成一个接口,用于生成每日的备份用的加密密码,并记录到库里(可以提前批量生成好,也可以每天首次调用的时候触发生成当日备份用的密码)。

2、备份脚本里面,先执行请求backup-center,获取到当天使用的加密密码,用于当天的备份文件的加密。

3、需要解密备份文件的时候,根据备份文件名中带的日期时间,查询backup-center获取到相对应的解密密码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求背景
  • 备选方案
  • openssl+aes加密实操
  • 集成到备份控制平台的思路
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档