Python计算字符串或者文件md5值使用hashlib模块,hashlib主要提供字符串加密的功能,支持md5,sha1, sha224, sha256, sha384, sha512等算法。这里我们只用到md5。原来在python2中还支持md5模块,但这个模块在python 2.5以后就已经不再推荐,python3中被废弃。
计算字符串md5值
import hashlib def string_to_md5(string): md5_val = hashlib.md5(string.encode('utf8')).hexdigest() return md5_val
以上代码对string字符串做了下转码,否则输入中文的话会报错。字符串md5计算其实就一个命令,很简单。
计算文件md5值
#coding: utf-8 import os import hashlib import sys def md5sum(fname): if not os.path.isfile(fname): return False try: f = file(fname, 'rb') except: return False m = hashlib.md5() # 大文件处理 while True: d = f.read(8096) if not d: break m.update(d) ret = m.hexdigest() f.close() return ret if __name__ == "__main__": if len(sys.argv) < 2: print(u"请输入文件路径") sys.exit(1) filepath = sys.argv[1] print(md5sum(filepath))
计算文件md5值先打开文件,然后使用hashlib计算。简单测试下,发现python版本和linux自带的md5sum命令计算结果一致。
最后我把python脚本打包成了exe文件,让windows和linux下支持md5sum命令,需要的朋友可以直接下载,保存到C:Windows即可。
链接: https://pan.baidu.com/s/1gq_d-tI-J3ybN6JZ439anw
提取码: 26rk