linux配置文件密码加密工具,Linux下利用openssl对文件进行加密和解密
转载地址:http://hi.baidu.com/edeed/item/99206a096b62d0e1ff240db8
--建立文件test.txt, 特意写入中英文# cd /tmp
# echo "test测试" >
test.txt
--开始加密, 使用aes-128-cbc算法, 也可以使用其他算法, 通过查看openssl的帮助可获知
#
openssl aes-128-cbc -salt -in test.txt -out test.txt.aes
enter aes-128-cbc
encryption password:
Verifying - enter aes-128-cbc encryption
password:
--查看加密前后的文件大小, 加密后文件明显增大了
# ll test.txt*
-rw-r--r-- 1 root root 9 Aug 11 15:42 test.txt
-rw-r--r-- 1 root root
32 Aug 11 15:43 test.txt.aes
--查看加密前后的文件内容, 加密后文件无法直接查看, 显示乱码
#
cat test.txt
test测试
# cat
test.txt.aes
Salted__碾RTqm6棚顱
--现在开始解密, 会提示输入密码, 如果密码有误则无法解密
#
openssl aes-128-cbc -d -salt -in test.txt.aes -out test.txt.out
enter
aes-128-cbc decryption password:
bad
decrypt
6150:error:06065064:digital envelope routines:EVP_DecryptFinal:bad
decrypt:evp_enc.c:438:
# openssl aes-128-cbc -d -salt -in test.txt.aes
-out test.txt.out
enter aes-128-cbc decryption
password:
--查看解密前后的文件大小, 和加密前是一样的
# ll
test.txt*
-rw-r--r-- 1 root root 9 Aug 11 15:42 test.txt
-rw-r--r-- 1
root root 32 Aug 11 15:43 test.txt.aes
-rw-r--r-- 1 root root 9 Aug 11
15:45 test.txt.out
--查看解密前后的文件内容, 和加密前是一样的
# cat
test.txt.out
test测试
这种方法非常适合Linux下的文件内容保密, 呵呵....以上命令加参数比较复杂,
我们可以把命令加参数做个函数, 然后放到.bash_profile里, 这样每次登陆后直接使用函数即可, 如下:
function
encryption()
{
/usr/bin/openssl aes-128-cbc -salt -in $1 -out $1.aes
&& rm -f $1
}
function decryption()
{
/usr/bin/openssl
aes-128-cbc -d -salt -in $1.aes -out $1 && rm -f
$1.aes
}
然后就可以如下使用了(注意输入参数都是原文件名, 且会自动删除原文件):
# encryption
test.txt
enter aes-128-cbc encryption password:
Verifying - enter
aes-128-cbc encryption password:
# decryption test.txt
enter
aes-128-cbc decryption password:
# ll test.txt*
-rw-r--r-- 1
root root 9 Aug 11 15:46 test.txt
-rw-r--r-- 1 root root 9 Aug 11 15:45
test.txt.out
--End--
OpenSSL进行RSA加密解密:
RSA是一个非对称加密算法。简单地说,非对称加密算法就是说加密解密一个文件需要两个密钥,一个用来加密,为公钥,一个用来解密,为私钥。证书可以用来授权公钥的使用。
介绍下Linux平台下openssl工具的简单使用:
1、生成一个密钥:
openssl genrsa -out test.key
1024
这里-out指定生成文件。需要注意的是这个文件包含了公钥和私钥两部分,也就是说这个文件既可用来加密也可用来解密。后面的1024是生成密钥的长度。
2、openssl可以将这个文件中的公钥提取出来:
openssl rsa -in test.key -putout -out
test_pub.key
-in指定输入文件,-out指定提取生成公钥的文件名。至此,我们手上就有了一个公钥,一个私钥(包含公钥)。现在可以用公钥来加密文件了。
3、在目录中创建一个hello的文本文件,然后利用此前生成的公钥加密文件:
openssl rsautl -encrypt -in hello -inkey
test_pub.key -pubin -out hello.en
-in指定要加密的文件,-inkey指定密钥,-pubin表明是用纯公钥文件加密,-out为加密后的文件。
4、解密文件:
openssl rsautl -decrypt -in hello.en -inkey test.key -out hello.de
-in指定被加密的文件,-inkey指定私钥文件,-out为解密后的文件。
OpenSSl命令行工具验证数字签名:
一、发送方A:
生成私钥:
OpenSSL> genrsa -passout pass:123456 -out
apri.pem 1024
生成公钥:
OpenSSL> rsa -passin pass:123456 -pubout -in
apri.pem -out apub.pem
用B的公钥加密数据:
OpenSSL> rsautl -encrypt -pubin -inkey
bpub.pem -in data.txt -out edata.txt
计算数据的消息摘要:
OpenSSL> dgst -sha1 -out md.txt data.txt
用A的私钥给消息摘要签名:
OpenSSL> rsautl -sign -inkey apri.pem -in
md.txt -out signature.bin
将edata.txt和signature.bin发送给接收方B
二、接收方B
生成私钥:
OpenSSL> genrsa -passout pass:654321 -out
bpri.pem 1024
生成公钥:
OpenSSL> rsa -passin pass:654321 -pubout -in
bpri.pem -out bpub.pem
用B的私钥解密数据:
OpenSSL> rsautl -decrypt -inkey bpri.pem -in
edata.txt -out data.txt
计算data.txt的信息摘要:
OpenSSL> dgst -sha1 -out ms2.txt data.txt
用A的公钥解密数字签名:
OpenSSL> rsautl -verify -pubin -inkey
apub.pem -in signature.bin -out ms3.txt
最后比较:ms2.txt 和ms3.txt内容完全相同:
SHA1(data.txt)=
ad6910d33d5f96cbd7b9b3378107b8b04ba1c138
linux配置文件密码加密工具,Linux下利用openssl对文件进行加密和解密相关推荐
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...
- 04_《计算机安全原理与实践》密码编码工具(下)
04_<计算机安全原理与实践>密码编码工具(下)含本章理论性习题解答 前言 本专栏上一篇博文介绍了消息认证的机理和非对称加密体系,从实际应用角度,二者是不可分割的.本章将在上一章的基础上进 ...
- php利用openssl实现RSA非对称加密签名
来源:http://www.webiji.com/archives/412 php利用openssl实现RSA非对称加密签名 1. 先用php生成一对公钥和私钥 $res = openssl_pkey ...
- 【 Linux学习】Linux环境下利用OpenSSL对大文件进行AES加解密
一.背景 之前的几篇博客已经介绍了Gitlab如何备份恢复与迁移已经脚本监控过程等. git学习--> Gitlab如何进行备份恢复与迁移? http://blog.csdn.net/ouyan ...
- linux基于此语言的密码,Impost3r:一款针对Linux的密码提取工具
Impost3r是一款针对Linux平台的密码管理工具,该工具采用C语言开发,可以帮助广大研究人员在渗透测试的过程中,从目标Linux主机中获取各类密码(ssh.su.sudo). 此工具仅限于安全研 ...
- linux下面C 利用openssl的AES库加密,解密
OpenSSL提供了AES加解密算法的API const char *AES_options(void); AES算法状态,是全部支持或者是部分支持. 返回值:"aes(full)" ...
- linux系统密码管理,Linux使用密码管理工具pass管理密码的方法
在Linux系统操作中,使用的密码多了反而记不过来,而且也容易记错,如果使用密码管理工具来管理的话会轻松很多,下面小编就给大家介绍一款实用的密码管理工具pass,一起来学习下pass的使用吧. 对于那 ...
- linux 串口转网口工具,linux下串口调试工具/串口终端推荐: picocom(转)
Servlet 3.0 异步模式 Servlet 3.0标准新增了异步处理的支持. 进行异步处理的Servlet和作用于该Servlet的拦截器都必须声明对于异步处理的支持. java 资源监控 ht ...
- linux添加ip白名单_centOS7 下利用iptables配置IP地址白名单的方法
编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能 #vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FO ...
最新文章
- oracle归档日志是否启用,oracle归档日志满了,导致无法启动 ORA-03113
- 打了断点为直接运行完_黑社会行为?男子驾校身亡,家属看现场被保安围殴,手臂被打断...
- jzoj3500-物语【最短路】
- 技术架构演进|0到千万DAU,微淘如何走过?
- Linux主机无法安装软件故障排查
- 计算理论笔记 10月10日
- 绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?
- 使用Word制作签名电子版
- 12星座的出生年月日性格_十二星座出生日期
- chromium 浏览器多进程架构小科普
- html5 plus 保存图片,H5+app点击图片保存到相册
- v-charts 如何更改文本颜色
- Python转义字符及举例(常见)代码解释
- 原生js 实现大鱼吃小鱼效果
- 不受更新影响的微信PC客户端N开补丁
- word中去除页眉中的横线
- (Python语法篇)4.序列(3)字典
- 解决Word文档中表格不会自动换页,而是在同一页word上往下换行的问题。
- Oracle 恢复dmp文件到数据库表中(超大DMP) 【数据系列 3】
- Arduino 声音传感器例程
热门文章
- php定义变量$3t=5,如何在Nexmo代码中设置php变量
- zabbix企业应用之自动语音报警平台
- Centos添加开机启动项【Systemctl方式】
- pyppeteer 报 Execution context was destroyed, most likely because of a navigation
- 解决vue项目在浏览器中打开后,#后面的链接被截取的问题
- PMP分享|不在挣扎中蜕变,就在安逸中消亡
- 世界七大数学难题的提出(转载)
- CAD三维图形转化成二维图形的过程具体的步骤
- 编译原理逆波兰式实验java_逆波兰式算法的编译原理实验过程.doc
- 二分图匹配 Hopcroft-Carp (HK) 算法详解 附例题