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的Django REST框架中的序列化及请求和返回
Apr 11 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
python遍历序列enumerate函数浅析
Oct 17 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
python与caffe改变通道顺序的方法
Aug 04 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
django session完成状态保持的方法
Nov 27 Python
Python实现求两个数组交集的方法示例
Feb 23 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
Selenium 配置启动项参数的方法
Dec 04 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
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
js调用flash的效果代码
2008/04/26 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
python连接mysql并提交mysql事务示例
2014/03/05 Python
python多线程抓取天涯帖子内容示例
2014/04/03 Python
在Python中使用列表生成式的教程
2015/04/27 Python
Python实现字典的key和values的交换
2015/08/04 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
django Serializer序列化使用方法详解
2018/10/16 Python
详解如何设置Python环境变量?
2019/05/13 Python
详解Python字符串切片
2019/05/20 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
python实现126邮箱发送邮件
2020/05/20 Python
QML用PathView实现轮播图
2020/06/03 Python
业务内勤岗位职责
2014/04/30 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
入党培养人考察意见
2015/06/08 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫