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 11 Python
python每隔N秒运行指定函数的方法
Mar 16 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
浅谈MySQL中的触发器
May 05 Python
用Python编写简单的微博爬虫
Mar 04 Python
用python实现对比两张图片的不同
Feb 05 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
python使用numpy中的size()函数实例用法详解
Jan 29 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
2017/05/11 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
python格式化字符串实例总结
2014/09/28 Python
python基础教程之五种数据类型详解
2017/01/12 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
react中的DOM操作实现
2021/06/30 Javascript