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 相关文章推荐
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python快速排序算法实例分析
Nov 29 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
详解Python中的type和object
Aug 15 Python
python3 读取Excel表格中的数据
Oct 16 Python
在pycharm中设置显示行数的方法
Jan 16 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
详解python tkinter模块安装过程
Jan 06 Python
在keras里面实现计算f1-score的代码
Jun 15 Python
python 获取字典键值对的实现
Nov 12 Python
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
Apr 21 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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
php统计文章排行示例
2014/03/04 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
vue实现登录拦截
2020/06/29 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
将python图片转为二进制文本的实例
2019/01/24 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
深入了解Python 方法之类方法 &amp; 静态方法
2020/08/17 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
播音主持专业个人自我评价
2014/01/09 职场文书
经典广告词大全
2014/03/14 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
毕业典礼主持词
2015/06/29 职场文书
初中思想品德教学反思
2016/02/24 职场文书
Django中session进行权限管理的使用
2021/07/09 Python