上传到网盘时需要对文件进行加密,并方便下载者解密(不需要安装额外的软件)
不占用大量内存——例如 1GB 的文件拆成多个 10MB 的块,每个块就是个 block,每次处理一个 block 不必占用大量内存
流式加密——输入一个 block generator,输出一个新的 block generator ;而不需要产生临时文件,也方便串联多个加密函数轻松实现多次加密。反正 requests 进行 POST 上传操作的时候支持 data 为 generator
产生的是标准的 zip 文件格式——可以不压缩
似乎也不支持流式压缩,并没有输入一个 block 输出一个 block 的接口
我已经写出了一个:
https://github.com/zjuchenyuan/EasyLogin/blob/master/examples/panzju/encryption_example.py
def fencrypt_data(data_generator):
c = cryptor.Cryptor(ENCRYPTION_PASSWORD, ENCRYPTION_METHOD)
for data in data_generator:
yield c.encrypt(data)
ss 用的 cryptor 本身就是流式加密的,可以对每个 block 加密产生一个新的 block
只是不方便下载者解密(需要 python 和 openssl 库) 可用性低
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.