码迷,mamicode.com
首页 > 其他好文 > 详细

<PY><目录操作>自制空闲磁盘擦除器(反数据恢复软件)

时间:2015-02-10 23:17:57      阅读:390      评论:0      收藏:0      [点我收藏+]

标签:windows   磁盘   数据恢复   python   os   

使用ccleaner的时候有一个安全擦除MFT的选项,发现速度奇慢,而且可定制性很差

所以自己用python写了一个小程序来擦除数据

原理是通过产生文件覆盖空闲空间,然后删除这些文件,来实现原来残留文件的不可恢复,从而使数据恢复软件失效,来确保已删除(清空回收站之后)的数据的安全

理论上设置size=1000000,便不可恢复1MB以上的文件;设置1000,便不可恢复1KB以上的文件

先上效果图

技术分享


代码如下:

import os,win32file,shutil

def getpath():
    try:
        return os.path.abspath('.')
    except:
        return 400
def getfreecapcity(path):
    try:
        sectorsPerCluster, bytesPerSector, numFreeClusters, totalNumClusters =win32file.GetDiskFreeSpace(path)
        return numFreeClusters * sectorsPerCluster * bytesPerSector   #Bytes
    except:
        return 401
def mkfolder(name):
    try:
        os.mkdir(name)
        print '0'
        return 0
    except:
        return 402
def rmfolder(name):
    try:
        shutil.rmtree(name)
        return 0
    except:
        return 403
def mkfill(fillname,size,mode):
    try:
        f=open(fillname,'w')
        f.write(mode*size)
        f.close();return 0
    except:
        return 404

def empty(size,mode,workspace):
    'size:filesize,mode:fillcontext,workspace:tempfolder'
    print mkfolder(workspace)
    path=getpath();print path
    size_limit=len(mode*size)+200
    fname=-1
    getfreecapcity(path)
    while long(getfreecapcity(path))>size_limit:
        fname+=1
        mkfill(workspace+'\\'+str(fname),size,mode)
    print rmfolder(workspace)
    return 0

def emptyplus(times=3,size=1000,mode='z',workspace='EmPtYmFt'):
    'size:filesize(default=1kB),mode:fillcontext,workspace:tempfolder'
    while times>0:
        times-=1
        empty(size,mode,workspace)
    return 'done!'

if __name__=='__main__':
    print emptyplus()
    raw_input('ENTER TO EXIT.')







<PY><目录操作>自制空闲磁盘擦除器(反数据恢复软件)

标签:windows   磁盘   数据恢复   python   os   

原文地址:http://blog.csdn.net/awsxsa/article/details/43709859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!