如何在网络浏览器中实时对客户端的文件传输进行去加密
How is it possible to on-the-fly client-side de/encrypt file transfers in a webbrowser?
轻松隐私过去,安全存储和传输需要安装专用的机密信息软件新的Mega透明地加密和解密您的数据在您的浏览器中,在运行中。你拿着你储存的东西的钥匙云,而不是我们。
这句话摘自新的MegaUpload文件托管服务的网站,该服务计划于本月1月19日推出。
作为一名网络开发人员,我自然对背后的技术感兴趣和好奇。
我所能找到的只是屏幕截图和声明,这让它看起来很真实,数据真的从未让客户端未加密!
文件和传输使用AES进行保护。
每个客户端都会得到一个非对称密钥对,我只能猜测原因,但我认为它将用于加密AES初始化向量和其他客户端的密钥,您希望与这些客户端共享文件。
然而,我的问题是:
从技术上讲,如何拦截文件上传/下载?
我知道RSA和AES都有加密算法,它们运行在javascript中,非常高效。
但似乎唯一支持在文件系统中操作的浏览器是chrome。
数据是如何从硬盘驱动器传输到客户端浏览器进行加密的?它是如何从那里到达硬盘上的文件的?
我不知道像API这样的文件系统。即使是html5也只支持某种类型的对象存储。
我想,使用某种浏览器插件或使用java或adobe-air小程序是很琐碎的,但他们声称不需要安装第三方软件。
还有别的办法吗?
从技术上讲,如何拦截文件上传/下载?
您不需要截取。用户使用<input type="file">
元素拾取一个或多个文件,然后JavaScript读取文件输入的值并对其进行加密。上传可能会通过Ajax完成。
但似乎唯一支持在文件系统中操作的浏览器是chrome。
Chrome是第一个实现文件系统API的公司,这与API文件系统不同。文件系统API管理沙盒文件系统(不是用户真正的操作系统文件系统(;文件API从CCD_ 2元素中读取文件。API文件在大多数现代浏览器中都有更广泛的支持(但不是完美的支持(。
对于加密和上传,JavaScript可以读取用户使用文件输入专门选择的文件,并通过Ajax将加密值发送到服务器。对于下载,浏览器可以执行资源的Ajax提取、解密,并提示用户保存文件(例如,通过重定向到data:
URI(。不需要对文件系统进行编程访问。
- 使用Tabris-js,并尝试使用cordova文件和文件传输插件
- 通过html5/websocket通过wifi传输文件
- Gulp和FTP:如何只传输文件夹的内容
- cordova图像上传出现文件传输错误
- 热以显示服务器间文件传输的进度条
- 服务器不读取科尔多瓦文件传输选项参数
- 如何使用WebRTC在两个浏览器之间传输文件
- 将资源文件数据从控制器传输到js文件
- NodeJ将文件从请求流式传输到文件系统,而不是内存
- 文件传输在电话间隙代码401
- 图像文件因websocket文件传输而损坏
- 如何用javascript将变量传输到外部js文件
- 通过http传输大文件(>100MB)的最佳方式
- 在 cordova 项目中,我正在使用文件传输插件上传个人资料照片,它总是返回代码 1 错误
- 科尔多瓦的文件传输写入错误(代码 1)
- 从二进制文件流式传输 JS
- 通过 HTTP 在两个节点.js服务器之间传输文件
- 在从 ifram 流式传输文件或 HTTP 标头之前返回 JSON
- 文件上传时如何传输文件内容
- 流式传输文件而不下载