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类定义的讲解
Nov 01 Python
Python修改Excel数据的实例代码
Nov 01 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
python简易远程控制单线程版
Jun 20 Python
替换python字典中的key值方法
Jul 06 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
python数据归一化及三种方法详解
Aug 06 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 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将向Java靠拢
2006/10/09 PHP
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
php异常处理使用示例
2014/02/25 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
python将ansible配置转为json格式实例代码
2017/05/15 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
python读取ini配置文件过程示范
2019/12/23 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
django和flask哪个值得研究学习
2020/07/31 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
便利店的创业计划书
2014/01/15 职场文书
爱情保证书大全
2014/04/29 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
刑事案件上诉状
2015/05/23 职场文书
2016年清明节寄语
2015/12/04 职场文书
Python中相见恨晚的技巧
2021/04/13 Python