PostgreSQL备份加密方法
发布时间:2020-12-13 17:08:07 所属栏目:百科 来源:网络整理
导读:本文加密方式是在利用pg_dump备份出文件后直接利用openssl进行文件加密。 1、生产密钥: 利用各种参数进行建立公私密钥,这里利用输入参数作为密钥生成的一部分,其他的可以手动添加,脚本如下: [sure@localhost bin]$ cat createpem.sh#!/bin/bashdata="$1
本文加密方式是在利用pg_dump备份出文件后直接利用openssl进行文件加密。 1、生产密钥: [sure@localhost bin]$ cat createpem.sh #!/bin/bash data="$1" openssl req -x509 -nodes -days 1000000 -newkey rsa:4096 -keyout backup_key.pem -subj "/C=US/ST=Illinois/L=Chicago/O=IT/CN="${data} -out backup_key.pem.pub这里的backup_key.pem和 backup_key.pem.pub就是公司密钥,名字可以修改。 2、加密脚本: [sure@localhost bin]$ cat pg_dump.sh #!/bin/bash isencrypt=$1 database=$2 output=$3 pubpath=$4 basepath=$(cd `dirname $0`; pwd) if [ ! ${pubpath} ] then pubpath="${basepath}/backup_key.pem.pub" fi if [ ${isencrypt} == "encrypt" ] then ${basepath}/pg_dump ${database} | openssl smime -encrypt -aes256 -binary -outform DEM -out ${output} ${pubpath} else ${basepath}/pg_dump $@ fi这里是利用公钥进行加密的,第一个参数为"encyrpt",作为是否加密的标志; 第二个参数为pg_dump原本的选项,不过要注意的是,如果是多个参数的话,需要用“”引起来; 第三个参数为输出文件名; 第四个参数为公钥,这里可以允许用户指定公钥进行加密,不输入,则默认为当前目录下的公钥。 不加密,则和原来一致。 3、解密脚本: [sure@localhost bin]$ cat dencrypt_backup #!/bin/bash input=$1 output=$2 pripath=$3 basepath=$(cd `dirname $0`; pwd) if [ ! ${pripath=} ] then pripath="${basepath}/backup_key.pem" fi openssl smime -decrypt -in ${input} -binary -inform DEM -inkey ${pripath} -out ${output}输入输出文件名作为参数,私钥为第三个参数,如上不输入都会默认使用当前目录下的密钥文件。 以上就是本次PostgreSQL备份加密使用到的脚本,下面是一次完整的使用过程: [sure@localhost bin]$ ./createpem.sh highgo Generating a 4096 bit RSA private key ...................................................................................................................++ .........................................................++ writing new private key to 'backup_key.pem' ----- [sure@localhost bin]$ ll backup_key.pem* -rw-rw-r--. 1 sure sure 3272 Mar 25 09:30 backup_key.pem -rw-rw-r--. 1 sure sure 1952 Mar 25 09:30 backup_key.pem.pub [sure@localhost bin]$ ./pg_dump.sh -U syssso highgo > bak1.sql Password: [sure@localhost bin]$ ./pg_dump.sh encrypt "-U syssso highgo" bak2.sql.encrypt /opt/db/20150423/bin/backup_key.pem.pub Password: [sure@localhost bin]$ ll bak* -rw-rw-r--. 1 sure sure 604 Mar 25 09:31 bak1.sql -rw-rw-r--. 1 sure sure 1321 Mar 25 09:32 bak2.sql.encrypt [sure@localhost bin]$ ./dencrypt_backup bak2.sql.encrypt bak2.sql [sure@localhost bin]$ ls bak2* bak2.sql bak2.sql.encrypt [sure@localhost bin]$ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ruby-on-rails – Activerecord协会问题:获得ha
- ruby-on-rails – Oauth2 Instagram API“redire
- sqlplus命令行启动关闭oracle数据库
- c# – IEnumerable.Cast()vs在IEnumerable.Selec
- ruby – 与Capybara一起获得边境风格
- Vue.js如何优雅的进行form validation
- How to Load XML with JavaScript on an HTML5 P
- 常用正则
- 在PostgreSQL数据库中定期同步数据的最有效方法是
- solr5.3.1修改默认的访问字段:文件:solrconfig
热点阅读