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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。