下载期间的Javascript解密

下载期间的Javascript解密,javascript,encryption,proxy,download,Javascript,Encryption,Proxy,Download,我正在建立一个ASPX网站,允许用户下载CSV/Excel文件(包括“保存到”对话框)。CSV包含加密数据-解密密钥在用户端可用,并且应该对Web服务保密。 因此,解密实际上应该在浏览器中执行,javascript实现(sjcl)已经证明工作正常。 但是在文件下载过程中,如何影响传入的数据流呢?类似于执行javascript解密的浏览器托管代理 @结束语:非常感谢!Ajax是没有问题的,而且 <a href='data:application/csv;base64,aGVsbG87d29y

我正在建立一个ASPX网站,允许用户下载CSV/Excel文件(包括“保存到”对话框)。CSV包含加密数据-解密密钥在用户端可用,并且应该对Web服务保密。 因此,解密实际上应该在浏览器中执行,javascript实现(sjcl)已经证明工作正常。 但是在文件下载过程中,如何影响传入的数据流呢?类似于执行javascript解密的浏览器托管代理

@结束语:非常感谢!Ajax是没有问题的,而且

<a href='data:application/csv;base64,aGVsbG87d29ybGQNCg=='>click</a>


它确实很酷,但有两个问题:它似乎不能与IE一起工作,而且对于非常大的表来说,它不是正确的方法。解决方案应该能够处理数千条记录,因此我们需要某种类型的下载流编码器/解密程序。

以下是实现这一点的步骤:

  • 不要直接将CSV下载到客户机,而是通过ajax获取它
  • 一旦通过Ajax接收到数据,就可以通过internet上的许多可用功能解析CSV。如果你需要帮助,请告诉我。此函数将CSV转换为本机Javascript数组
  • 遍历数组并将加密数据转换为未加密数据。在同一阵列中本机执行此操作
  • 将阵列转换为CSV(公共域中也有函数)
  • 制作一个链接(一个元素)并将href设置为本地数据,如
    data:text/csv;字符集=utf-8,+encodeURIComponent(csv)
  • 将此链接呈现给用户,并要求他单击该链接以在本地保存文件

  • 你说的“受影响”是什么意思?请原谅我英语不好。有了“受影响”,我想用纯文本替换加密内容。这在任何浏览器中都不起作用。在脚本文件或标记中构建字符串,并使用它设置锚标记的href属性。我已经修复了上面的数据URI,将其作为独立示例使用。但它只适用于小数据量。这是一个我已经有一段时间的问题,它工作得非常好,我以前从未想过要设置到本地数据的链接。所以谢谢你的提示