【问题标题】:Client side (javascript/jQuery) file manipulation before/after upload/download上传/下载之前/之后的客户端(javascript/jQuery)文件操作
【发布时间】:2010-12-27 16:02:31
【问题描述】:

我只是在四处张望并画了一个空白。我想看看这是否可能,因为到目前为止我还没有办法做到这一点。

我想在上传文件之前在本地加密文件(在浏览器中使用现有库)。然后我需要在将文件呈现给用户之前检索并解密它。具体来说,我无法在存储之前将文件发送到服务器进行加密。加解密需要在客户端进行。

这是我需要做的大致流程:

  1. 向用户展示查找文件小部件。
  2. 将文件读入客户端脚本(即在本地加载)
  3. 在客户端加密。
  4. 上传加密版本,刷新客户端并存储数据。

反过来:

  1. 下载文件的存储加密版本。
  2. 在客户端解密。
  3. 将解密后的文件作为下载文件返回给用户。

我一直在客户端上寻找某种 MIME 编码(类似于电子邮件附件在作为纯文本发送之前进行 MIME 编码的方式)。我对 jQuery 方法特别感兴趣,因为这是我的应用程序的其余部分正在使用的方法,但普通的旧 javascript 就可以了。

非常感谢收到任何想法或建议。这是我在假期里考虑的一个。所以,提前感谢任何 cmets。

【问题讨论】:

  • 即使你能做到,会不会有安全问题,即使你能做到?您想保护文件内容的人也可以读取您的 JS 源代码,对吗?

标签: javascript jquery file-upload mime


【解决方案1】:

你不能用 JavaScript 做到这一点。当然,您可以简单地使用 SSL(例如,通过 HTTPS)。非常简单,经过充分测试,所有这些。否则,您将不得不使用非标准的东西,例如 Flash、Java 或 ActiveX。

【讨论】:

    【解决方案2】:

    由于浏览器的安全限制,无法使用纯 Javascript 或 JQuery 执行此操作。

    您最好的选择可能是采用基于 Flash 的开源上传组件,如 SWFUpload(Flash 可以更多或客户端)并在 ActionScript 中添加加密例程。创建 Java 小程序或 ActiveX 控件也是有效的选项。

    根据我们所讨论的加密类型,也可能存在用于这项工作的现成组件。

    【讨论】:

    • 我开始这么认为。谢谢。我看 Flash 没有问题,所以我会调查一下。谢谢佩卡。
    【解决方案3】:

    I can't speak to other browsers,但我知道这在 Firefox 中应该是可能的,方法是使用 file manipulation api 将文件从用户上传/下载到客户端代码(可能会被操纵),并使用标准 ajax 上传/将文件从客户端代码下载到服务器。

    【讨论】:

      【解决方案4】:

      此处接受的答案已过时。现在可以使用 HTML5 File API 和 CryptoJS library 之类的东西来做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-14
        • 2020-04-16
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-05
        • 1970-01-01
        相关资源
        最近更新 更多