Javascript 如何在webbrowser中实时对客户端文件传输进行反加密/加密?

Javascript 如何在webbrowser中实时对客户端文件传输进行反加密/加密?,javascript,html,encryption,filesystems,Javascript,Html,Encryption,Filesystems,轻松隐私过去,安全存储和传输 安装专用设备所需的机密信息 软件。新的Mega可以透明地加密和解密您的数据 在浏览器中,随时可用。您持有存储内容的钥匙 云,不是我们 此引文摘自新的MegaUpload文件托管服务,该服务计划于本月1月19日推出 作为一名web开发人员,我自然对其背后的技术感兴趣和好奇 我所能找到的只是屏幕截图和声明,这让它看起来真实,数据真的从来没有让客户不加密过 使用AES保护文件和传输 每个客户机都会得到一个非对称密钥对,我只能猜测原因,但我认为它将用于加密AES初始化向量和

轻松隐私过去,安全存储和传输 安装专用设备所需的机密信息 软件。新的Mega可以透明地加密和解密您的数据 在浏览器中,随时可用。您持有存储内容的钥匙 云,不是我们

此引文摘自新的MegaUpload文件托管服务,该服务计划于本月1月19日推出

作为一名web开发人员,我自然对其背后的技术感兴趣和好奇

我所能找到的只是屏幕截图和声明,这让它看起来真实,数据真的从来没有让客户不加密过

使用AES保护文件和传输

每个客户机都会得到一个非对称密钥对,我只能猜测原因,但我认为它将用于加密AES初始化向量和您希望与之共享文件的其他客户机的密钥

然而,我的问题是:


从技术上讲,如何拦截文件上载/下载

我知道在javascript中运行的RSA和AES都有加密算法,非常有效

但唯一一款似乎支持在文件系统中操作的浏览器是chrome

数据如何从硬盘驱动器传输到客户端浏览器进行加密?它是如何从那里传输到硬盘上的文件的

我不知道什么是文件系统API。甚至html5也只支持某种对象存储

我想,使用一些浏览器插件或java或AdobeAIR小程序是很简单的,但他们声称不会有第三方软件需要安装

还有别的办法吗


从技术上讲,如何拦截文件上载/下载

你不能拦截它。用户使用
元素选择一个或多个文件,然后JavaScript读取文件输入的值并对其进行加密。上传可能会通过Ajax完成

但唯一一款似乎支持在文件系统中操作的浏览器是chrome

Chrome是第一个实现的,它不同于。文件系统API管理沙盒文件系统(不是用户真正的OS文件系统);文件API从
元素读取文件。文件API在大多数现代浏览器中都有(但不是完美的支持)


对于加密和上传,JavaScript可以读取用户使用文件输入专门选择的文件,并通过Ajax将加密值发送到服务器。对于下载,浏览器可以对资源执行Ajax获取、解密并提示用户保存文件(例如,通过重定向到
数据:
URI)。不需要对文件系统进行编程访问。

“从技术上讲,如何拦截文件上载/下载?”您是指攻击者还是一般情况?如果总的来说,他们使用html5文件API来读取文件,对文件进行加密,并使用ajax或其他方式通过互联网发送。下载也一样。几乎可以肯定的是,这不是通过使用POST或下载扰乱常规文件上传来完成的,因为这在AFAIK是不可能的。顺便说一句,一个有趣的问题——这是我第一次听说新的Megaupload。可能加密文件不是用浏览器上传的,而是像Dropbox、Skydrive这样的操作系统应用程序……我根本不知道MegaAPI,但我不知道这与文件系统有什么关系。我猜上传过程是这样的:1。使用
元素2将文件加载到浏览器中。读取该文件并使用,3对其进行加密。发送服务器上存储的加密值。要从服务器获取一个文件,请使用Ajax获取它,解密它,然后让浏览器将其保存为文件(或者可能只是在浏览器中向用户显示)。我也想到了数据uri方案,但是我认为它在大文件(比如说几百兆字节)方面存在相当大的问题?你不这么认为吗?同时,把所有的东西都记在记忆里也会变得难看。当然,理论上它是可行的,但我认为在实际情况下,我们需要一些能够处理块的实时流媒体解决方案。。。我不确定是否可以使用文件api/data urialright实现这一点,似乎确实可以通过select文件进行搜索!很不错的!现在这应该可以解决上传问题了。但是下载biiiig文件怎么样?再一次,答案似乎是文件api,它提供了正确的写入功能:)谢谢+1.