1

我想在上传文件时对其进行加密,通常情况是它被写入磁盘,然后您可以从那里对其进行加密,我想在此之前对其进行加密。是否有任何用于 http 服务器或应用程序框架的模块可以让我这样做,我不想花很多时间为此编写软件,但如果需要我会这样做。

重要的是,没有任何未加密的记录会接触到硬盘。

硬盘驱动器已使用 aes 加密,但由于第三方可以在我不知情的情况下访问服务器,因此如果有某种方法可以防止实际数据 /that/ 容易受到损害,我更愿意这样做。

4

3 回答 3

0

系统管理员回答:用于预加密数据的 ramdisk 存放区。从不碰磁盘,问题解决了。不?

于 2011-05-13T01:29:03.290 回答
0

我最终做的是使用 mod_wsgi..

有了它,我可以将上传作为流,然后使用 PyCrypto 对其进行加密,效果很好

        inputLength  = int(environ.get('CONTENT_LENGTH', 0))
        input = environ['wsgi.input']
        f = open(dropDir + '/input','w')
        while 1:
                remain = inputLength - f.tell()
                if remain <= 0: break
                chunk = input.read(min(chunksize, remain))
                if  not chunk: break
                f.write(crypt.encrypt(chunk))
        f.close()

当我这样做时,我最终使用有状态密码加密整个后数据并将其写入文件,然后在使用 GnuPG 加密后将密钥保存到另一个文件。

于 2011-05-17T15:43:56.077 回答
0

这是我收到但尚未测试的答案,在我准确测试它的作用之前,我不会将其标记为答案。

答案是这个 django 项目,它是用于泄露网站的,它将整个文件读入内存,然后对其进行加密。 http://gitorious.org/deaddrop/deaddrop/blob/master/drop/views.py

然而,有一种方法可以将数据分块

http://docs.djangoproject.com/en/1.3/topics/http/file-uploads/

还有一个问题是httpd正在处理文件上传并且可以忽略应用程序框架,这取决于......所以在确定它在做什么之前我需要对其进行大量测试。

但是,我很确定您可以使用 wsgi 来做到这一点,当您将 mod_wsgi 与 apache 一起使用时,我很确定 django 会这样做......不确定其他 Web 服务器使用什么,我更喜欢使用更轻量级的东西.

编辑:如果有人碰巧对此进行了严格测试,并将其作为答案发布,我会将其标记为答案。

于 2011-05-14T14:01:46.213 回答