Python提取MD5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python提取MD5相关的知识,希望对你有一定的参考价值。

使用Python的hashlib模块提取MD5,网上参考,觉得这个还不错,可以作为模块直接使用。

# -*- coding: utf-8 -*-  
  
import hashlib  
import sys  
import os
def md5hex(word):  
    """ MD5加密算法,返回32位小写16进制符号 """  
    if isinstance(word, unicode):  
        word = word.encode("utf-8")  
    elif not isinstance(word, str):  
        word = str(word)  
    m = hashlib.md5()  
    m.update(word)  
    return m.hexdigest() 
  
  
def md5sum(fname):  
    """ 计算文件的MD5值 """  
    def read_chunks(fh):  
        fh.seek(0)  
        chunk = fh.read(8096)  
        while chunk:  
            yield chunk  
            chunk = fh.read(8096)  
        else: #最后要将游标放回文件开头  
            fh.seek(0)  
    m = hashlib.md5()  
    if isinstance(fname, basestring) and os.path.exists(fname):  
        with open(fname, "rb") as fh:  
            for chunk in read_chunks(fh):  
                m.update(chunk)  
    #上传的文件缓存 或 已打开的文件流  
    elif fname.__class__.__name__ in ["StringIO", "StringO"] or isinstance(fname, file):  
        for chunk in read_chunks(fname):  
            m.update(chunk)  
    else:  
        return ""  
    return m.hexdigest()
if __name__ == "__main__":
    print (md5hex(sys.argv[1]))
    print (md5sum(sys.argv[2]))

 Linux上验证:

技术分享

 技术分享

 

以上是关于Python提取MD5的主要内容,如果未能解决你的问题,请参考以下文章

Android课程---Android Studio使用小技巧:提取方法代码片段

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

从单个按钮从多个片段中提取数据

从值标签Etree XML python中提取文本

Python基础20_类的约束,异常处理,MD5加密,日志

16位的MD5加密和32位MD5加密的区别