python 获取大文件、超长字符串的md5值

393 阅读1分钟
import hashlib

def get_file_md5(f):
    m = hashlib.md5()

    while True:
        data = f.read(10240)
        if not data:
            break

        m.update(data)
    return m.hexdigest()


with open(YOUR_FILE, 'r') as f:
    file_md5 = get_file_md5(f)
import uuid
import hashlib
from io import StringIO
# 长字符串用StringIO
def get_string_md5(big_string):
    s = StringIO(big_string)
    m = hashlib.md5()
    while True:
        data = s.read(102)
        if not data:
            break
        m.update(data.encode('utf-8'))
    return m.hexdigest()