欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python计算字符串和文件md5值的方法

程序员文章站 2024-03-19 11:25:16
...

原文地址:https://zhangnq.com/3125.html

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计算字符串和文件md5值的方法

最后我把python脚本打包成了exe文件,让windows和linux下支持md5sum命令,需要的朋友可以直接到文章开头处下载,保存到C:\Windows即可。