linux下使用openssl和md5sum加密文件或者字符串
linux下使用openssl和md5sum加密文件或者字符串
- 前言
- 1 用oppnssl md5 加密字符串和文件的方法
- 1.1 oppnssl md5 加密字符串的方法
- a.手动输入命令及过程如下
- b.或者直接用管道命令
- 1.2 用openssl加密文件
- 3 利用md5sum命令
- 4 使用MD5sum该命令判断文件是否被修改了
原文链接:
https://blog.csdn.net/chushoutaizhong/article/details/77750872
https://www.sojson.com/md5/
前言
理解openssl md5:
OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。OpenSSL漏洞不仅影响以https开头的网站,黑客还可利用此漏洞直接对个人电脑发起“心脏出血”(Heartbleed)攻击。据分析,Windows上有大量软件使用了存在漏洞的OpenSSL代码库,可能被黑客攻击抓取用户电脑上的内存数据。
1 用oppnssl md5 加密字符串和文件的方法
1.1 oppnssl md5 加密字符串的方法
a.手动输入命令及过程如下
#openssl //在终端中输入openssl后回车。
OpenSSL> md5 //输入md5后回车
123456 //接着输入123456,不要输入回车。然后按3次ctrl+d。
123456e10adc3949ba59abbe56e057f20f883e //123456后面的就是密文了
解释:为何在输入123456后不回车呢?
是因为openssl默认会把回车符当做要加密的字符串中的一个字符,所以得到的结果不同。如果你输入123456后回车,在按2次ctrl+d。 得到的结果是:
OpenSSL> md5
123456
f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的
b.或者直接用管道命令
# echo -n 123456 | openssl md5 //必须要有-n参数,否则就不是这个结果了。
e10adc3949ba59abbe56e057f20f883e
解释:为何要加-n这个参数?
-n就表示不输入回车符,这样才能得到正确的结果。 如果你不加-n,那么结果和前面说的一样为:
f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的
1.2 用openssl加密文件
#openssl md5 1.txt
#echo -n “admin” > 2.txt //将admin写进文本文件,不能丢了 –n参数,避免回车符干扰
一. 利用openssl命令进行BASE64编码解码(base64 encode/decode)
1. BASE64编码命令
对字符串‘abc’进行base64编码:
# echo abc | openssl base64
YWJjCg== (编码结果)
如果对一个文件进行base64编码(文件名t.txt):
# openssl base64 -in t.txt
2. BASE64解码命令
求base64后的字符串‘YWJjCg==’的原文:
# echo YWJjCg== | openssl base64 -d
abc (解码结果)
如果对一个文件进行base64解码(文件名t.base64):
# openssl base64 -d -in t.base64
二. 利用openssl命令进行md5/sha1摘要(digest)
1. 对字符串‘abc’进行md5摘要计算:echo abc | openssl md5
若对某文件进行md5摘要计算:openssl md5 -in t.txt
2. 对字符串‘abc’进行sha1摘要计算:echo abc | openssl sha1
若对某文件进行sha1摘要计算:openssl sha1 -in t.txt
三. 利用openssl命令进行AES/DES3加密解密(AES/DES3 encrypt/decrypt)
对字符串‘abc’进行aes加密,使用密钥123,输出结果以base64编码格式给出:
# echo abc | openssl aes-128-cbc -k 123 -base64
U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= (结果)
对以上结果进行解密处理:
# echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64
abc (结果)
若要从文件里取原文(密文)进行加密(解密),只要指定 -in 参数指向文件名就可以了。
进行des3加解密,只要把命令中的aes-128-cbc换成des3就可以了。
注:只要利用openssl help就可以看到更多的安全算法了。
3 利用md5sum命令
A.在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。可以用下面的命令来获取md5sum命令帮助 man md5sum
#md5sum –help
有个提示:“With no FILE, or when FILE is -, read standard input.”翻译过来就是“如果没有输入文件选项或者文件选项为 - ,则从标砖读取输入内容”,即可以直接从键盘读取字符串来加密。
利用md5sum加密字符串的方法
# md5sum //然后回车
123456 //输入123456.然后按两次ctrl+d.
显示:
123456e10adc3949ba59abbe56e057f20f883e 红色代表加密后的值
还可以用管道命令:
#echo -n ‘123123’ | md5sum
或者写成md5加密脚本,名字叫md5.sh,
将以下内容复制进脚本里:
#!/bin/bash
echo -n $1 | md5sum | awk ‘{print $1}’
保存后,给脚本执行权限。
#sh md5.sh 123456
显示:e10adc3949ba59abbe56e057f20f883e
B.其实也可以将文本放入文本文件,然后用md5sum 加密改文本,也可以得到字符串加密的值。过程如下:
#touch a.txt
#echo -n 123456 > a.txt //将123456写进文本文件,不能丢了 –n参数,避免回车符干扰
#md5sum a.txt
显示:e10adc3949ba59abbe56e057f20f883e a.txt
ctrl+d有两个含义:
一是向程序发送文件输入结束符EOF。
二是向程序发送exit退出指令。程序收到信号后具体动作是结束输入、然后等待,还是直接退出,那就要看该程序捕获信号后是如何操作的了。
md5sum属于第一个含义。两次strl+d了,第一次读取EOF指令,再次捕获就会当成exit指令。而shell一类的程序,会直接把ctrl+d解析为退出指令。
4 使用MD5sum该命令判断文件是否被修改了
md5sum testmd51.txt >testmd51.txt.md5 将testmd51.txt的md5结果重定向到文件testmd51.txt.md5中
使用md5sum testmd51.txt -c testmd51.txt.md5 校验其文件内容是否被修改了
显示结果 如下 就是说明一致没有被修改
md5sum: testmd51.txt:找不到格式适用的MD5 校验和
testmd51.txt: 确定
显示结果如下 就说明不一致被修改了
testmd51.txt: 失败
md5sum: 警告:1 个校验和不匹配
linux下使用openssl和md5sum加密文件或者字符串相关推荐
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...
- linux 运行ca.crt,linux下使用openssl生成 csr crt CA证书,opensslcsr
linux下使用openssl生成 csr crt CA证书,opensslcsr 本文主要借鉴和引用了下面2个地址的内容,然后在自己的机器上进行了测试和执行,并做了如下记录. ref: http:/ ...
- openssl生成证书linux,Linux下使用openssl生成证书
利用OpenSSL生成库和命令程序,在生成的命令程序中包括对加/解密算法的测试,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的证书文件以及CA文件. 证书文件的生成步骤: ...
- crt证书linux使用,linux下使用openssl生成https的crt和key证书
x509证书一般会用到三类文,key,csr,crt Key 是私用密钥openssl格,通常是rsa算法. Csr 是证书请求文件,用于申请证书.在制作csr文件的时,必须使用自己的私钥来签署申,还 ...
- Linux下使用Intel_WiFi_Link_5100AGN 破解无线加密
Linux下使用Intel_WiFi_Link_5100AGN 破解无线加密 就是传说中的BT4破解 ㄝㄙㄩㄧㄝ 回答:1 人气:16 解决时间:2010-02-24 14:55 满意答案 该网站为5 ...
- Linux下使用OpenSSL生成证书
Linux下使用OpenSSL生成证书 安装OpenSSL 直接用apt或者yum安装即可 生成服务器端的私钥(key文件) $ openssl genrsa -des3 -out server.ke ...
- Linux下利用rsync实现多服务器文件同步
Linux下利用rsync实现多服务器文件同步 目标:多服务器文件同步 环境:2台centos5.6 Web端:192.168.20.20 Backup端:192.168.20.21 需要备份目录为: ...
- Linux下shel脚本之批量修改文件扩展名
Linux下shel脚本之批量修改文件扩展名 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.在/data/tmp/下的所有文件扩展名改为.py ...
- Linux下scp无密码上传 下载 文件 目录的方法
这篇文章主要介绍了Linux下scp无密码上传 下载 文件 目录的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在Linux下远程备份的时候,需要配置scp的 无密码复制文件.目录.就把这个 ...
最新文章
- Python:列表前加*的作用
- 当人类与「熵」对抗时,意识出现了!那AI呢?
- 关于代理服务器藏IP的一些问题(高手免看)
- 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度...
- 【Spark篇】---Spark初始
- github php项目,12月份GitHub上最热门的PHP项目
- 2个红外传感器循迹原理_红外线光学气体浓度传感器作用原理
- 将文件中的参数读取成Map
- 前端学习(2912):MvvM的实现原理
- 局域网内数据采集总结(四)
- 【英语学习】【Daily English】U10 Education L01 Is this certificate a must?
- linux查看命令本身shell脚本的路径
- Leetcode每日一题:52.N-Queens II(N皇后Ⅱ)
- java线程冲突问题——不安全的线程例子
- 宝尚简讯-短期震荡在蓄势
- Python源码保护
- 如何修改网络连接的网络位置
- 团队如何限制合适的在制品(WIP)数量
- 申报高新技术企业的好处
- EBS日记账冲销API
热门文章
- 2018-7.29-interactive visualization and visual analytics-马匡六
- 【零基础学C语言】知识总结八:struct 结构体与 union 共用体
- 致女孩:你要嫁一个灵魂有温度的男人
- UoW中修改VIM的配色方案
- 微信小程序实现一个复杂的路径动画
- C#-创建txt文本
- 关于调整部分车站互联网、电话订票起售时间的公告(火车票放票时间)
- TEF(Tensorflow Extend Framework):大规模推荐系统深度学习解决方案
- (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹
- 【UE4 RTS游戏】07-控件蓝图显示当前游戏时间