• hashlib模块


    import hashlib
    # 能够把一个字符串数据类型的变量,转换成定长的密文的字符串,每一个字符都是十六进制数
    
    # md5 结果为32位字符串,每个字符都是十六进制
    # 注意:如果要对多个字符串计算md5,一定要实例化多个MD5对象 md5_obj = hashlib.md5(bytes('任意字符串作为盐',encoding='utf-8'))
    s = 'alex3714'
    md5_obj = hashlib.md5(bytes('任意字符串作为盐',encoding='utf-8'))
    
    md5_obj.update(bytes(s,encoding='utf-8'))
    m = md5_obj.hexdigest()
    print(m)
    
    # sha1 结果为40位字符串,每个字符都是十六进制.用法跟md5一样 只需要把md5改成sha1
    s = 'alex3714'
    sha1_obj =hashlib.sha1(bytes('任意字符串作为盐',encoding='utf-8'))
    sha1_obj.update(bytes(s,encoding='utf-8'))
    s = sha1_obj.hexdigest()
    print(s)
    # 大文件md5 注意:同一个文件的时候一定要用同一个md5的实例化对象 25cd4f5e603e0da5ff5b12e445503052
    def md5_file(file_name,each_size=1024):
        import os
        md5_obj = hashlib.md5()
        file_size = os.path.getsize(file_name)
        with open(file_name,'rb') as f:
            count = 0
            while count < file_size:
                if count + each_size < file_size:
                    line = f.read(each_size)
                    count += each_size
                else:
                    line = f.read(file_size-count)
                    count = file_size
                md5_obj.update(line)
        m = md5_obj.hexdigest()
        return m
    def md5_file_compare(file1,file2,each_size=1024):
        file1_md5 = md5_file(file1,each_size)
        file2_md5 = md5_file(file2,each_size)
        return file1_md5,file2_md5,file1_md5==file2_md5
    file1 = '测试用的文件.mp4'
    file2 = 'os模块.ipynb'
    print(md5_file_compare(file1,file2,each_size=1024))
    验证文件是否相同
  • 相关阅读:
    [BZOJ2882] 工艺
    团队项目成员和题目
    软件工程课堂作业(最小数组和)
    每周进度条(第六周)
    梦断代码阅读笔记01
    每周进度条(第五周)
    每周进度条(第四周)
    软件工程个人作业03
    软件工程个人作业02
    每周进度条(第三周)
  • 原文地址:https://www.cnblogs.com/wtil/p/11093656.html
Copyright © 2020-2023  润新知