[20171215]关于md5sum的计算的小问题.txt

本文探讨了在Windows与Linux环境下使用md5sum命令计算同一字符串时出现的不同结果。通过对比分析,发现这一现象主要是由不同平台对于换行符及空白字符处理方式的差异所导致。

[20171215]关于md5sum的计算的小问题.txt

--//今天测试md5 crack时,遇到1个问题,就是windows,linux下计算的md5不一样.

1.不同OS下计算md5:

--//linux下:(注这里-n避免计算时包括\n):
# echo -n a | md5sum
0cc175b9c0f1b6a831c399e269772661  -

--//windows下:
R:\>echo -n a | md5sum
df2441ab8749f5a594f1051c313e3f81 *-

--//仔细想想我在windows下安装了unixutil包,这里的echo是windows cmd解析的命令.

R:\>D:\tools\linux\usr\local\wbin\echo -n a | md5sum
0cc175b9c0f1b6a831c399e269772661 *-

--//这样计算就对了.

--//看看windows下计算的那个结果linux下如何计算呢?

R:\>echo -n a > a.txt

R:\>D:\tools\Vim\vim74\xxd.exe -c 16 a.txt
0000000: 2d6e 2061 200d 0a                        -n a ..

--//昏!这个输出a后面还有1个空格(怪不得测试几次都不对).也就是在linux下字符串应该是"-n -a \r\n"

# echo   "-n a ^M" | md5sum
df2441ab8749f5a594f1051c313e3f81  -

--//注:^M表示\r ,在linux输入 ctrl+v ctrl+m.
--//这样就跟前面windows下执行一样了.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2148747/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-2148747/

### MD5SUM `-c` 命令功能解析 #### 功能描述 `md5sum -c` 是一种用于验证文件完整性的方式。该命令会读取一个包含文件名及其对应的MD5哈希值的文本文件(通常命名为 `*.md5` 或其他扩展名),并逐一计算指定文件的实际MD5值,将其与记录中的哈希值进行比较。如果两者匹配,则表示文件未被篡改;如果不匹配,则说明文件可能已被修改或损坏。 此过程基于MD5算法的核心特性——即对于同一段信息始终生成相同的哈希值[^3]。因此,`md5sum -c` 能够高效地完成文件的一致性校验工作[^2]。 --- #### 使用场景 当执行如下命令时: ```bash md5sum -c md5.txt ``` 其中,`md5.txt` 应是一个预先生成的文件列表,每行格式类似于以下形式: ``` d41d8cd98f00b204e9800998ecf8427e *example.txt ``` 这里的第一列为文件的MD5哈希值,第二列是以星号 (`*`) 开头标记二进制文件或者以空格开头标记文本文件,第三列为实际文件路径名称。 --- #### 输出结果解读 运行上述命令后,可能会得到以下几种类型的输出: 1. **成功匹配** 如果某个文件的内容与其存储在 `md5.txt` 中的哈希值完全一致,那么终端将显示类似下面的消息: ``` example.txt: OK ``` 2. **失败情况** 若发现当前文件内容已更改,导致重新计算出来的MD5值不再等于原始记录值,则会出现警告提示: ``` example.txt: FAILED ``` 3. **找不到文件的情况** 当某些文件缺失时,也会收到错误通知: ``` example.txt: NO SUCH FILE ``` 最后,在所有检查完成后还会有总结统计信息给出,比如总共测试了多少项以及有多少项未能通过检验等。 --- ### 示例代码展示 以下是创建和验证整个流程的一个简单例子: 第一步先建立几个样本文件,并分别求得它们各自的MD5签名存档到单独文档里去; ```bash echo "hello world" > file1.txt echo "goodbye universe" > file2.txt md5sum file{1..2}.txt > checksums.md5 ``` 接着可以尝试模拟一些变化再利用 `-c` 参数来审查这些变动是否会被捕捉出来。 ```bash # 修改其中一个文件内容后再做对比分析 sed -i 's/universe/multiverse/' file2.txt md5sum -c checksums.md5 ``` 此时应该能看到有关第二个档案状态改变的相关反馈。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值