Python基于hashlib模块的文件MD5一致性加密验证示例


Posted in Python onFebruary 10, 2018

本文实例讲述了Python基于hashlib模块的文件MD5一致性加密验证。分享给大家供大家参考,具体如下:

使用hashlib模块,可对文件MD5一致性加密验证:

#python 检测文件MD5值
#python version 2.6
import hashlib
import os,sys
#简单的测试一个字符串的MD5值
def GetStrMd5(src):
  m0=hashlib.md5()
  m0.update(src)
  print m0.hexdigest()
  pass
#大文件的MD5值
def GetFileMd5(filename):
  if not os.path.isfile(filename):
    return
  myhash = hashlib.md5()
  f = file(filename,'rb')
  while True:
    b = f.read(8096)
    if not b :
      break
    myhash.update(b)
  f.close()
  return myhash.hexdigest()
def CalcSha1(filepath):
  with open(filepath,'rb') as f:
    sha1obj = hashlib.sha1()
    sha1obj.update(f.read())
    hash = sha1obj.hexdigest()
    print(hash)
    return hash
def CalcMD5(filepath):
  with open(filepath,'rb') as f:
    md5obj = hashlib.md5()
    md5obj.update(f.read())
    hash = md5obj.hexdigest()
    print(hash)
    return hash
if __name__ == "__main__":
  if len(sys.argv)==2 :
    hashfile = sys.argv[1]
    if not os.path.exists(hashfile):
      hashfile = os.path.join(os.path.dirname(__file__),hashfile)
      if not os.path.exists(hashfile):
        print("cannot found file")
      else
        CalcMD5(hashfile)
    else:
      CalcMD5(hashfile)
      #raw_input("pause")
  else:
    print("no filename")
Python 相关文章推荐
python处理PHP数组文本文件实例
Sep 18 Python
Python多进程通信Queue、Pipe、Value、Array实例
Nov 21 Python
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
Python自定义类的数组排序实现代码
Aug 28 Python
python实现俄罗斯方块
Jun 26 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
python代码能做成软件吗
Jul 24 Python
Python读写压缩文件的方法
Jul 30 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 Python
Python中生成器和迭代器的区别详解
Feb 10 #Python
详解python中的线程
Feb 10 #Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 #Python
python TCP Socket的粘包和分包的处理详解
Feb 09 #Python
python实现Adapter模式实例代码
Feb 09 #Python
python实现Decorator模式实例代码
Feb 09 #Python
Python多线程扫描端口代码示例
Feb 09 #Python
You might like
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php中smarty区域循环的方法
2015/06/11 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
用console.table()调试javascript
2014/09/04 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
保密工作目标责任书
2014/07/28 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
报案材料怎么写
2015/05/25 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis