导航:首页 > 源码编译 > linuxmd5sum源码

linuxmd5sum源码

发布时间:2022-06-25 11:03:54

A. linuxshell怎么计算设备文件的md5

计算设备文件的md5所要用到的命令就是 md5sum
man一下md5sum命令,得到md5sum命令的用法:
md5sum [OPTION]… [FILE]…
1、计算指定文件的MD5值(如a.rmvb)
md5sum a.rmvb
输出结果类似如下:
a.rmvb
即计算出的md5值加上文件名

测试了一下,发现这命令算一2G多的电影所用时间不过几十钞,效率还行。
2、计算字符串MD5值(如字符串 “password”)
echo -n “password” | md5sum
输出:

上面echo加 -n的作用是去除串结尾的回车符,因为echo命令默认会添加一回车符。
像如果是:
echo “password” | md5sum
那输出的将会是:

不加-n与加-n结果是不一样的。正确的做法一般是要加-n参数。

B. linux中使用md5sum文件

md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值
是否一致 md5sum –c hashfile
可以多关.注《Linux就该这么学》这本书,我都是从这里面学到的

C. Linux镜像中有md5sum.txt和MD5SUMS,感觉是在交叉校验md5,这些值是怎么得出的

根据文件生成的,下载的文件计算一下md5,值与给出的一致,就说明是完整的,
Linux命令有md5sum,
Windows命令 certutil,比如certutil -hashfile filename MD5

D. 我想知道linux所有命令源代码,我是说命令的源代码在哪里查看,或是在哪里能够找到命令源代码大全!!

一般来说,不同的命令可能隶属于不同的软件包,这样就没有一个地方会有所有命令的源代码。(命令的个数也会与你所安装的软件包有关)
但是,一些常用的命令,例如
basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd df dirname echo
env expand expr factor false fmt fold groups head hostid hostname id install join kill link ln
logname ls md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr printenv
pwd readlink rm rmdir seq sha1sum sleep sort split stty su sum sync tac tail tee test touch
tr true tsort tty uname unexpand uniq unlink uptime users wc who whoami yes
都包含在 coreutils 软件包中,coreutils 软件包的源码可以在
http://ftp.gnu.org/gnu/coreutils/
下载到。

另外,还有一部分命令是 bash 内置的,例如 cd 等,可以在 bash 的源码中找到。
http://ftp.gnu.org/gnu/bash/

E. linux shell md5sum 指令的诡异问题

初看你的代码,貌似没什么问题,琢磨了半天才发现原来和相同文件的个数有关。
当你的相同文件数目大于等于3时,就会出这个问题。只有两个文件相同时,则不会出。
比如你的
text,
text1,
text2
是相同的,第一次进入时
比较和处理text,
text1
没有问题。
第二次进入时,此时要比较
text1

text2,相当于要执行
"md5sum
text1"
|
getline;
sum1=$1;
print
$0
"md5sum
text2"
|
getline;
sum2=$1;
print
$0
但是由于
"md5sum
text1"
|
getline
这条管道语句已经在上次比较
text

text1
时执行过了,awk在第二次执行的时候就不会再创建管道执行同样的md5sum命令让getline读取,而是尝试从之前打开的管道中让getline读取内容,显然,此时已经没有内容可读了,因此此时getline
会失败
(如果你用
if
语句判断这条命令的返回值,会发现返回值不等于1
(应该是0,表示
end
of
file)。所以这条语句并不会更新
$0
$1
这些变量,所以后面你
print
$0
实际上打印的是
ls
-lS
得到的输入。
解决方法很简单,在每次
"md5sum
"name
|
getline
之后,用close命令,比如
"md5sum
"name1
|
getline;
sum1=$1;
close("md5sum
"name1)
print
$0
"md5sum
"name2
|
getline;
sum2=$1;
close("md5sum
"name2)
print
$0
这样就在每次getline之后,都关闭管道,从而确保下次总能重新创建管道及执行md5sum命令。

F. 如何查询linux 的MD5值是多少

Linux下查询文件的MD5值:md5sum xxx.iso.md5

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相 同的报文摘要的可能性是非常非常之小的。

在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。可以用下面的命令来获取md5sum命令帮助 man md5sum

  1. 使用md5sum来产生指纹(报文摘要)命令如下:md5sum file > file.md5 或者 md5sum file >>file.md5
    注: > 和 >> 的区别在于: > 表示把由file文件产生的摘要重定向到文件file.md5,但是会覆盖file.md5里面的内容;而 >> 则将输出的摘要附加到file.md5文件的后面。也可以把多个文件的报文摘要输出到一个md5文件中,这要使用通配符*,比如某目录下有几个iso文 件,要把这几个iso文件的摘要输出到iso.md5文件中,命令如下:md5sum *.iso > iso.md5

  2. 使用md5报文摘要验证文件,方法有二:
    a、把下载的文件file和该文件的file.md5报文摘要文件放在同一个目录下,然后用如下命令进行验证:md5sum -c file.md5 然后如果验证成功,则会输出:正确;
    b、下载了文件file,然后运行下面的命令:md5sum file 命令会输出一个md5的报文摘要,然后把这个报文摘要直接与file.md5中的内容比较,如果一样,就说明验证正确。

G. linux shell脚本攻略中,通过md5sum来查找出文件夹中的重复文件问题

getline函数调用时,awk将会把下一条记录读入赋值给$0,因此相当于已经跳到下一行了。
你的程序上面那个,由于在awk中有多次getline,因此一开始把记录定位到第二行,即第一个文件,然后每调用一次"md5sum "name1 | getline; 记录就跳到了下一行,输出是不会重复的。

而下面的那个程序,没有多次getline调用,awk按行扫描,每次会把当前行的文件名赋值给name2,同时name1又记录了上一次的文件名,因此出现了test01两次,test02两次
事实上,输出和扫描行的对应关系是:
先在BEGIN段跳过两行,当前行为test,name赋值得到test
然后逐行扫描,当前扫描行是test01时, 输出了test test01
当前扫描行是test02时, 输出了 test01 test02
当前扫描行是test02时, 输出了 test02 test03
所以一共出现6行,中间有重复

H. 如何在linux使用md5对其进行加密

这里以字符串123456为例子,它的md5密文值为:
这里以1.txt为需要被加密的文件。

一、 用oppnssl md5 加密字符串和文件的方法。
1. oppnssl md5 加密字符串的方法
a.手动输入命令及过程如下:
#openssl //在终端中输入openssl后回车。
OpenSSL> md5 //输入md5后回车
123456 //接着输入123456,不要输入回车。然后按3次ctrl+d。
123456 //123456后面的就是密文了
解释:为何在输入123456后不回车呢?
是因为openssl默认会把回车符当做要加密的字符串中的一个字符,所以得到的结果不同。如果你输入123456后回车,在按2次ctrl+d。得到的结果是:
OpenSSL> md5
123456
//因为openssl不忽略回车符导致的
b.或者直接用管道命令
# echo -n 123456 | openssl md5 //必须要有-n参数,否则就不是这个结果了。

解释:为何要加-n这个参数?
-n就表示不输入回车符,这样才能得到正确的结果。如果你不加-n,那么结果和前面说的一样为:
//因为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 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就可以看到更多的安全算法了。
###############################################

二、 利用php的md5函数加密字符串
#touch a.php //创建a.php文件
#vi a.php //用vi 编辑a.php文件
将<?php echo md5(123456); ?>输入进去后保存
#php a.php //运行a.php文件
显示:
三、 利用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.
显示:
123456 红色代表加密后的值
还可以用管道命令:
#echo -n '123123' | md5sum

或者写成md5加密脚本,名字叫md5.sh,
将以下内容复制进脚本里:
#!/bin/bash
echo -n $1 | md5sum | awk '{print $1}'

保存后,给脚本执行权限。
#sh md5.sh 123456
显示:
B.其实也可以将文本放入文本文件,然后用md5sum 加密改文本,也可以得到字符串加密的值。过程如下:
#touch a.txt
#echo -n 123456 > a.txt //将123456写进文本文件,不能丢了 –n参数,避免回车符干扰
#md5sum a.txt
显示: a.txt

ctrl+d有两个含义:
一是向程序发送文件输入结束符EOF。
二是向程序发送exit退出指令。程序收到信号后具体动作是结束输入、然后等待,还是直接退出,那就要看该程序捕获信号后是如何操作的了。
md5sum属于第一个含义。两次strl+d了,第一次读取EOF指令,再次捕获就会当成exit指令。而shell一类的程序,会直接把ctrl+d解析为退出指令。

阅读全文

与linuxmd5sum源码相关的资料

热点内容
linux软raid性能 浏览:366
贴片机编程软件下载 浏览:358
mooc大学乐学python答案 浏览:408
怎么投诉途虎app 浏览:37
安卓重力感应怎么关 浏览:720
我的世界ios怎么建服务器地址 浏览:759
服务器端口ip都是什么意思 浏览:262
华为主题软件app怎么下 浏览:840
我们的图片能够收藏加密吗 浏览:978
mysql空值命令 浏览:213
python整点秒杀 浏览:882
怎么样互传app 浏览:293
python分布式抓包 浏览:36
轻量级php论坛 浏览:342
如何查看应用存储在哪个文件夹 浏览:436
app开发项目范围怎么写 浏览:76
androidjms 浏览:843
弹珠连贯解压 浏览:243
程序员的网课 浏览:904
广东加密狗防拷贝公司 浏览:450