UC缓存视频解密

from Crypto.Cipher import AES
import os,re,time


s_time = time.perf_counter()
key = b'133ebafddfc9fecf'
decry = AES.new(key,AES.MODE_CBC)
save_path = eval(input('save_path:'))
if not os.path.exists(save_path):
    os.mkdir(save_path)
#实例化对象
lis = os.listdir(eval(input("文件夹路径(注意删除非加密文件):")))
lisnew = []
loadall = b''
for i in lis:
    #if not i.isalpha():    ####错误
        #“筛选”
        #lisnew += i错误的a+='ac'>>a=['a','c']
    s = 0
    for ii in i:
        if ii.isalpha():
            s += 1
            continue
            #lisnew.append(i)注意循环体层次
        #让我想起了质数的判断CalPrimeNum.py
    if s == 0:
        i1 = i.replace('(','.')
        i2 = i1.replace(')','')
        #化为小数
        lisnew.append(i2)  
        #要对名字进行排序,筛选
    
lisnew.sort(key=float)#排序
for i in lisnew:
    if '.' in i:
        i = re.sub('\.','(',i)+')'
        #re 都忘完了第一个可以有\d,第二个参数就不可以有了
    name = i
    with open('d:/迅雷下载/nice/不准翻了!/VideoData/VideoData/1562853873015/'+name,'rb')as f:
        load = f.read()
    d_f = decry.decrypt(load)
    loadall += d_f#小文件才可以
    with open(save_path+name+'-decrypted','wb')as f:
        f.write(d_f)
##    print(i,len(lisnew),end='***')##严重影响速度
##    print('\r'+i,len(lisnew),end='***')
with open(save_path+'whole.ts','wb')as f:
    #刚刚没有注意循环体,读写很大。下次DEBUG时候一定要分析性能
    f.write(loadall)
print('{:.2f}秒'.format(time.perf_counter()-s_time))

你可能感兴趣的:(UC缓存视频解密)