python md5sum

本文介绍了一个简单的MD5哈希工具,用于为文件生成MD5校验和。使用方法包括直接输入文件名或使用标准输入。工具通过Python实现,利用hashlib库计算文件的MD5值。

## {{{ http://code.activestate.com/recipes/266486/ (r1)
#!/usr/bin/env python

## md5hash
##
## 2004-01-30
##
## Nick Vargish
##
## Simple md5 hash utility for generating md5 checksums of files.
##
## usage: md5hash <filename> [..]
##
## Use '-' as filename to sum standard input.

import hashlib
import sys

def sumfile(fobj):
'''Returns an md5 hash for an object with read() method.'''
m = hashlib.md5()
while True:
d = fobj.read(8096)
if not d:
break
m.update(d)
return m.hexdigest()


def md5sum(fname):
'''Returns an md5 hash for file fname, or stdin if fname is "-".'''
if fname == '-':
ret = sumfile(sys.stdin)
else:
try:
f = file(fname, 'rb')
except:
return 'Failed to open file'
ret = sumfile(f)
f.close()
return ret


# if invoked on command line, print md5 hashes of specified files.
if __name__ == '__main__':
print md5sum('xxx.rar')
# for fname in sys.argv[1:]:
# print '%32s %s' % (md5sum(fname), fname)
## end of http://code.activestate.com/recipes/266486/ }}}
### 通过命令行计算和验证 FASTQ 文件的 MD5 校验和 计算和验证 FASTQ 文件的 MD5 校验和通常涉及使用命令行工具(如 `md5sum`)或编写脚本以确保文件的完整性。以下是一些常用方法: #### 计算 MD5 校验和 在 Linux 或 macOS 系统中,可以使用 `md5sum` 命令来计算文件的 MD5 值: ```bash md5sum your_file.fastq > your_file.md5 ``` 此命令会生成一个包含文件 MD5 值的 `.md5` 文件,格式如下: ``` d41d8cd98f00b204e9800998ecf8427e your_file.fastq ``` #### 验证 MD5 校验和 验证文件的完整性时,可以使用 `--check` 选项来检查 `.md5` 文件中的校验和是否与当前文件的校验和匹配: ```bash md5sum --check your_file.md5 ``` 如果文件未被修改,输出会显示文件的 MD5 校验和验证成功: ``` your_file.fastq: OK ``` 如果文件已被修改或损坏,输出将显示验证失败: ``` your_file.fastq: FAILED ``` ### 通过 Python 脚本计算和验证 MD5 校验和 #### 计算文件的 MD5 值 可以使用 Python 的 `hashlib` 模块来计算文件的 MD5 值: ```python import hashlib def calculate_md5_file(file_path): md5 = hashlib.md5() with open(file_path, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): md5.update(chunk) return md5.hexdigest() # 用法示例 file_path = "your_file.fastq" # 替换为你的文件路径 md5_value = calculate_md5_file(file_path) print("MD5:", md5_value) ``` #### 验证文件的 MD5 值 可以编写一个函数来验证文件的 MD5 值是否与预期值匹配: ```python def verify_md5(file_path, expected_md5): calculated_md5 = calculate_md5_file(file_path) return calculated_md5 == expected_md5 # 用法示例 expected_md5 = "d41d8cd98f00b204e9800998ecf8427e" # 替换为预期的 MD5 值 if verify_md5(file_path, expected_md5): print("MD5 verification succeeded.") else: print("MD5 verification failed.") ``` ### 注意事项 - **文件路径**:确保文件路径正确,并且文件存在。如果文件路径错误,可能会导致无法计算 MD5 值 [^1]。 - **文件大小**:对于大文件,建议使用分块读取的方法,以避免内存不足的问题 [^4]。 - **系统命令**:使用 `md5sum` 命令时,确保系统支持该命令,并且文件权限正确 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值