python实现文件快照加密保护的方法


Posted in Python onJune 30, 2015

本文实例讲述了python实现文件快照加密保护的方法。分享给大家供大家参考。具体如下:

这段代码可以对指定的目录进行扫描,包含子目录,对指定扩展名的文件进行SHA-1加密后存储在cvs文件,以防止文件被篡改

调用方法:python snapper.py > todayCheck.csv

# Hello, this is a script written in Python. See http://www.pyhon.org
#
# Snapper 1.2p
#
# This script will walk a directory (and its subdirectories) and compute
# SHA (Secure Hash Algorithm) for specific files (according to their
# extensions) and ouput a CSV file (suited for loading into a spreadsheet
# editor,a database or simply comparing with diff or ExamDiff.).
#
# You can redirect the output of this script to a file.
# eg. python snapper.py > todayCheck.csv
#
# This script can be usefull to check system files tampering.
#
# This script is public domain. Feel free to reuse it.
# The author is:
#    Sebastien SAUVAGE
#    <sebsauvage at sebsauvage dot net>
#    http://sebsauvage.net
#
# More quick & dirty scripts are available at http://sebsauvage.net/python/
#
# Directory to scan and extensions are hardcoded below:
directoryStart = r'c:\windows'
extensionList=['.exe','.dll','.ini','.ocx','.cpl','.vxd','.drv','.vbx','.com','.bat','.src',
        '.sys','.386','.acm','.ax', '.bpl','.bin','.cab','.olb','.mpd','.pdr','.jar']
import os,string,sha,stat,sys
def snapper ( directoryStart , extensionList ) :
  os.path.walk( directoryStart, snapper_callback, extensionList )
def snapper_callback ( extensionList , directory, files ) :
  sys.stderr.write('Scanning '+directory+'\n')
  for fileName in files:
    if os.path.isfile( os.path.join(directory,fileName) ) :
      if string.lower(os.path.splitext(fileName)[1]) in extensionList :
        filelist.append(fileSHA ( os.path.join(directory,fileName) ))
def fileSHA ( filepath ) :
  sys.stderr.write(' Reading '+os.path.split(filepath)[1]+'\n')
  file = open(filepath,'rb')
  digest = sha.new()
  data = file.read(65536)
  while len(data) != 0:
    digest.update(data)
    data = file.read(65536)
  file.close()
  return '"'+filepath+'",'+str(os.stat(filepath)[6])+',"'+digest.hexdigest()+'"'
sys.stderr.write('Snapper 1.1p - http://sebsauvage.net/python/\n')
filelist = []
snapper( directoryStart , extensionList )
sys.stderr.write('Sorting...\n')
filelist.sort()
filelist.insert(0, '"File path","File size","SHA"' )
sys.stderr.write('Printing...\n')
for line in filelist:
 print line
sys.stderr.write('All done.\n')

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

Python 相关文章推荐
Python中zfill()方法的使用教程
May 20 Python
Python中struct模块对字节流/二进制流的操作教程
Jan 21 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
python操作mysql代码总结
Jun 01 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python 为什么说eval要慎用
Mar 26 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
Python request使用方法及问题总结
Apr 26 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
浅谈Python协程asyncio
Jun 20 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 Python
Python实现高效求解素数代码实例
Jun 30 #Python
python实现DES加密解密方法实例详解
Jun 30 #Python
python实现的系统实用log类实例
Jun 30 #Python
python实现在windows服务中新建进程的方法
Jun 30 #Python
python实现线程池的方法
Jun 30 #Python
python实现的简单FTP上传下载文件实例
Jun 30 #Python
编写Python CGI脚本的教程
Jun 29 #Python
You might like
php常用Stream函数集介绍
2013/06/24 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
php中关于换行的实例写法
2019/09/26 PHP
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
javascript常用函数(2)
2015/11/05 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
python类定义的讲解
2013/11/01 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
python实现网站微信登录的示例代码
2019/09/18 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
个人应聘自我评价分享
2013/11/18 职场文书
综合办公室个人的自我评价
2013/12/22 职场文书
晚会邀请函范文
2014/01/24 职场文书
会计岗位职责模板
2014/03/12 职场文书
求职信格式要求
2014/05/23 职场文书
英语教师求职信
2014/06/16 职场文书