随笔 - 279  文章 - 1 评论 - 10 阅读 - 94万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- 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上验证:

 

 

posted on   浮沉一梦  阅读(3970)  评论(0编辑  收藏  举报
编辑推荐:
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!
点击右上角即可分享
微信分享提示