python 文件md5,Python计算字符串md5

  python 文件md5,Python计算字符串md5

  系统管理员通常从svn/git获取代码,并在展开站点时首先为该站点上的所有文件生成讯息摘要5值。联机后,如果网站页面的内容被篡改,可以与以前生成的讯息摘要5值进行比较,例如被马挂住,以快速查找这些文件的更改。可以组合例行性工作排程和程序等工具,以便系统管理员首先发现它们。

  [ URL=http://www .JB Xue . com/JB/python/]python[/URL]绑定[ URL=http://www .JB Xue.com/tags/MD5.html]mdml

  一。程序测试

  # python check_change.py

  用法:python check _ change。py update/home/wwwroot

  python check _ change。py check/home/wwwroot

  # python check _ change。py update/data/www #生成网站的讯息摘要5值

  # echo /data/www/sitemap.html #测试清除文件

  # rm -rf /data/www/sitemap.xml #测试删除文件

  # python check _ change。py check/data/www #检查那些文件是否已被篡改

  /data/www/sitemap.xml

  /data/www/sitemap.html

  二、实现代码(check_change.py)

  #!/usr/无辜的水壶/env python

  # www.jbxue.com

  导入操作系统、系统、子流程

  极好的更新(路径) :

  f=打开(文件,‘w’)))。

  对于root、dirs、filesinOS.walk(路径) :

  对于文件中的名称:

  line=OS.path.join(根,名称) ) ) ) ) )。

  (stdin,stderr)=子进程。popen([ MD 5 sum ,line),stdout=子进程.管道)。交流).

  f .写入(标准输入)

  f.close()

  定义检查(路径) :

  f=打开(文件, r ))))。

  对于f中的行:

  check _ ok= echo % s m D5 sum-c/dev/null 21 % line

  #打印检查_好的

  ifnotsubprocess.call(check_ok,shell=True )==0:

  异常=线。分裂(

  打印协议[1]

  f.close()

  解除危险(:

  打印

  用法:python % s update/home/wwwroot

  python %s check /home/wwwroot

  " " % (sys.argv[0],sys.argv[0])

  sys.exit())

  iflen(系统. Argv)!=3:

  使用() )

  file=file.key

  model=sys.argv[1]

  path=sys.argv[2]

  IFOS.path.exists(path )==False:

  print \ 033[;31 mthedirectoryorfiledoesnotexist \ 033[0m]

  sys.exit())

  elif model==update :

  是pdate(路径)

  elif model==check :

  是检查(路径)

  否则:

  使用() )

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: