zoukankan      html  css  js  c++  java
  • python-文件校验

    使用hashlib的md5方法对文件进行加密,目的是为了保证文件在传输的过程中是否发生变化。

    #!/usr/bin/python3
    # coding:utf-8
    # Auther:AlphaPanda
    # Description:使用hashlib模块,对文件内容进行校验。以此来判断文件传输过程中是否发生变化,或者有损坏
    # Version:1
    # Date:Fri Dec  6 22:15:16 EST 2019
    import hashlib
    # 针对小文件的内容校验
    def check_md5(file):
        with open(file,mode="rb") as fp:
            res = fp.read()
            hs = hashlib.md5()
            hs.update(res)
        return hs.hexdigest()
    
    res = check_md5("ceshi1.txt")
    print(res)
    
    
    # 针对大文件的内容校验
    hs = hashlib.md5()
    hs.update("你好
    世界".encode())
    print(hs.hexdigest())
    
    hs = hashlib.md5()
    hs.update("你好".encode())
    hs.update("
    世界".encode())
    print(hs.hexdigest())
    # 通过以上实验,证明一次加密文件的一行,依次加密完所有的文件内容和一次加密所有的文件内容,所获得的hash值一样。
    
    # 大文件校验方法1:
    def check2_md5(file):
        hs = hashlib.md5()
        with open(file,mode="rb") as fp:
            while True:
                content = fp.read(3)
                if content:
                    hs.update(content)
                else:
                    break
            return hs.hexdigest()
    
    print(check2_md5("ceshi3.txt"))
    
    
    # 方法二:
    import os
    def check4_md5(file):
        # 计算文件大小
        file_size = os.path.getsize(file)
        hs = hashlib.md5()
        with open(file,mode="rb") as fp:
            while file_size:
                # 一次最多读取三个字节
                content = fp.read(3)
                hs.update(content)
                file_size -= len(content)
            return hs.hexdigest()
    
    print(check4_md5("ceshi4.txt"))
  • 相关阅读:
    个人博客作业Week2
    个人作业
    软件工程——个人博客作业三
    软工个人博客二
    软件工程——个人博客作业一
    Linux服务器搭建常用环境(一)
    Swift学习之语言基础
    Python——函数的参数
    Python——函数的调用
    Python 导语
  • 原文地址:https://www.cnblogs.com/butterflies/p/12029809.html
Copyright © 2011-2022 走看看