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 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
numpy数组拼接简单示例
Dec 15 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python获取服务器响应cookie的实例
Dec 28 Python
python3 property装饰器实现原理与用法示例
May 15 Python
python进阶之自定义可迭代的类
Aug 20 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
python如何把字符串类型list转换成list
Feb 18 Python
在python3中实现更新界面
Feb 21 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 Python
Python 中面向接口编程
May 20 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
python调用新浪微博API项目实践
2014/07/28 Python
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python中的日期时间处理详解
2016/11/17 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Python实现对adb命令封装
2020/03/06 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
高中班主任工作总结(范文)
2019/08/20 职场文书
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫