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 相关文章推荐
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
Python使用GitPython操作Git版本库的方法
Feb 29 Python
python中sympy库求常微分方程的用法
Apr 28 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
pytorch 如何使用batch训练lstm网络
May 28 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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 gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
PHP面向对象精要总结
2014/11/07 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
JQuery与iframe交互实现代码
2009/12/24 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
vue.js删除列表中的一行
2018/06/30 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
Python logging设置和logger解析
2019/08/28 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python如何实现的二分查找算法
2020/05/27 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
TCP/IP的分层模型
2013/10/27 面试题
大门门卫岗位职责
2013/11/30 职场文书
生产班组长岗位职责
2014/01/05 职场文书
求职简历自我评价范例
2014/03/12 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
学习作风建设心得体会
2014/10/22 职场文书
学会感恩主题班会
2015/08/12 职场文书
初中英语教学反思范文
2016/02/15 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏