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避免死锁方法实例分析
Jun 04 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
Python实现自动发送邮件功能
Mar 02 Python
Python数据可视化之画图
Jan 15 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
详解python statistics模块及函数用法
Oct 27 Python
python制作朋友圈九宫格图片
Nov 03 Python
python怎么自定义捕获错误
Jun 29 Python
如何解决python多种版本冲突问题
Oct 13 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
pycharm 如何查看某一函数源码的快捷键
May 12 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 parse_url 一个好用的函数
2009/10/03 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
input的focus方法使用
2010/03/13 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
Python实现多行注释的另类方法
2014/08/22 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
处理Python中的URLError异常的方法
2015/04/30 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
行政助理求职自荐信
2013/10/26 职场文书
自立自强的名人事例
2014/02/10 职场文书
高三学生评语大全
2014/04/25 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
单位租房协议范本
2014/12/03 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python