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中Random和Math模块学习笔记
May 18 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
Mar 13 Python
谈谈python中GUI的选择
Mar 01 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
使用Eclipse如何开发python脚本
Apr 11 Python
django自带的server 让外网主机访问方法
May 14 Python
使用pip发布Python程序的方法步骤
Oct 11 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
人大复印资料处理程序_输入篇
2006/10/09 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
php链式操作的实现方式分析
2019/08/12 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
js中的string.format函数代码
2020/08/11 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
python 获取图片分辨率的方法
2019/01/08 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
python 监控logcat关键字功能
2020/09/04 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
师范教师毕业鉴定
2014/01/13 职场文书
单位授权委托书范文
2014/08/02 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书