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

 更新时间:2018年02月10日 09:33:14   作者:ccorz  
这篇文章主要介绍了Python基于hashlib模块的文件MD5一致性加密验证,涉及Python使用hashlib模块进行字符串与文件的MD5加密验证操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了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")

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python文件与目录操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 对django中render()与render_to_response()的区别详解

    对django中render()与render_to_response()的区别详解

    今天小编就为大家分享一篇对django中render()与render_to_response()的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python函数式编程

    Python函数式编程

    函数式编程Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量。
    2017-07-07
  • python中altair可视化库实例用法

    python中altair可视化库实例用法

    在本篇文章里小编给大家整理的是一篇关于python中altair可视化库实例用法,对此有兴趣的朋友们可以学习下。
    2021-01-01
  • python with提前退出遇到的坑与解决方案

    python with提前退出遇到的坑与解决方案

    这篇文章主要介绍了python with提前退出遇到的坑与解决方法,需要的朋友参考下吧
    2018-01-01
  • 详解python如何调用C/C++底层库与互相传值

    详解python如何调用C/C++底层库与互相传值

    Python作为一门脚本解释语言,本身又很好的结合C++,所以使用Python开发,在性能要求的地方调用C/C++底层库,这简直是神器。本文详细介绍了Python调用C/C++底层库,互相传值问题,下面一起来看看。
    2016-08-08
  • Python values()与itervalues()的用法详解

    Python values()与itervalues()的用法详解

    今天小编就为大家分享一篇Python values()与itervalues()的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python爬虫使用scrapy注意事项

    python爬虫使用scrapy注意事项

    在本篇文章里小编给大家整理的是一篇关于python爬虫使用scrapy注意事项的相关文章,对此有兴趣的朋友们可以学习下。
    2020-11-11
  • opencv python图像梯度实例详解

    opencv python图像梯度实例详解

    这篇文章主要介绍了opencv python图像梯度实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python使用pyexecjs代码案例解析

    Python使用pyexecjs代码案例解析

    这篇文章主要介绍了Python使用pyexecjs代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python安装mysql-python简明笔记(ubuntu环境)

    python安装mysql-python简明笔记(ubuntu环境)

    这篇文章主要介绍了python安装mysql-python的方法,测试环境为ubuntu,较为详细的记录了安装mysql-python过程中遇到的问题与解决方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06

最新评论