良许Linux教程网 干货合集 Linux下使用 md5 加密字符串和文件

Linux下使用 md5 加密字符串和文件

Linux下如何使用MD5加密字符串和文件?MD5是message-digest algorithm 5(信息-摘要算法)的缩写,被广泛用于加密和解密技术上,它可以说是文件的“数字指纹”,下面为大家分享一下Linux下使用 md5 加密字符串和文件方法。

Linux下使用 md5 加密字符串和文件

  1. linux下生成字符串密文的命令、软件及使用方法如下

    这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e

    这里以1.txt为需要被加密的文件。

    一、   用oppnssl md5 加密字符串和文件的方法。

    \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不忽略回车符导致的

    2.用openssl加密文件。

    #openssl  md 5  -in  1.txt

    ##################################################3

    Openssl其他相关加密的命令参数:引自:实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密 收藏

    一. 利用openssl命令进行BASE64编码解码(base64 encode/decode)\1. BASE64编码命令对字符串‘abc’进行base64编码:# echo abc | openssl base64YWJjCg== (编码结果)

    如果对一个文件进行base64编码(文件名t.txt):# openssl base64 -in t.txt

    \2. BASE64解码命令求base64后的字符串‘YWJjCg==’的原文:# echo YWJjCg== | openssl base64 -dabc  (解码结果)

    如果对一个文件进行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 -base64U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g=  (结果)

    对以上结果进行解密处理:# echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64abc (结果)

    若要从文件里取原文(密文)进行加密(解密),只要指定 -in 参数指向文件名就可以了。

    进行des3加解密,只要把命令中的aes-128-cbc换成des3就可以了。

    注:只要利用openssl help就可以看到更多的安全算法了。

    ###############################################

    二、   利用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解析为退出指令。

    三、获取字符串的MD5值:

    字符串“hello”的MD5:

    得到的MD5值:

    命令解释:

    md5sum: 显示或检查 MD5(128-bit) 校验和,若没有文件选项,或者文件处为”-“,则从标准输入读取。

    echo -n : 不打印换行符。

    cut: cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。

       -d 指定与空格和tab键不同的域分隔符。-f1 表示第一个域。参考这里。

    获取文件的MD5值:

    得到的MD5值:

    ee3d6e2ca498bc7685b7f17cdb5f2eea

    使用MD5校验iso文件:

    注意linuxmint-12-gnome-dvd-32bit.md5的内容是:

    把linuxmint-12-gnome-dvd-32bit和其验证文件  linuxmint-12-gnome-dvd-32bit.md5放到同一目录下用下面的命令:

    如果校验正确则输出:

    如果校验错误则输出:

    命令解释:md5 -c: 从文件中读取MD5 的校验值并予以检查

    1. linuxmint-12-gnome-dvd-32bit.iso: 失败

    2. md5sum: 警告:1/1 生成的校验和不匹配

    3. linuxmint-12-gnome-dvd-32bit.iso: 确定

    4. $ md5sum -c linuxmint-12-gnome-dvd-32bit.md5

    5. ef3d6e2ca498bc7685b7f17cdb5f2eea linuxmint-12-gnome-dvd-32bit.iso

    6. $ md5sum linuxmint-12-gnome-dvd-32bit.iso >linuxmint-12-gnome-dvd-32bit.md5

    7. $ md5sum linuxmint-12-gnome-dvd-32bit.iso|cut -d ‘ ‘ -f1

    8. 5d41402abc4b2a76b9719d911017c59

    9. $ echo -n ‘hello’|md5sum|cut -d ‘ ‘ -f1

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部