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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
用Python遍历C盘dll文件的方法
May 06 Python
Python实现的概率分布运算操作示例
Aug 14 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
Python列表操作方法详解
Feb 09 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
教你用python实现一个无界面的小型图书管理系统
May 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 格式化数字的时候注意数字的范围
2010/04/13 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
jQuery实现放大镜效果实例代码
2016/03/17 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
python logging.info在终端没输出的解决
2020/05/12 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
健康教育评估方案
2014/05/25 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
Python基础之进程详解
2021/05/21 Python
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android