下载过程中的Javascript解密

时间:2012-12-22 17:31:57

标签: javascript encryption proxy download

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

@closure:非常感谢! Ajax没问题,而且想法

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

真的很酷,但它有两个问题:它似乎不适用于IE,它不是真正巨大的表的正确方法。该解决方案应该能够处理数千条记录,因此我们需要某种下载流编码器/解密器。

1 个答案:

答案 0 :(得分:5)

以下是实现此目标的步骤:

  1. 不是直接将CSV下载到客户端计算机,而是通过ajax
  2. 获取
  3. 通过Ajax接收数据后,通过互联网上的许多可用功能解析CSV。如果您需要帮助,请告诉我。此函数将CSV转换为本机Javascript阵列。
  4. 遍历阵列并将加密数据转换为未加密的数据。在同一个数组中本地执行。
  5. 将数组转换为CSV(同样在公共域中有功能)
  6. 创建一个链接(元素)并将href设置为data:text/csv;charset=utf-8, + encodeURIComponent(csv)
  7. 等本地数据
  8. 向用户显示此链接,并要求他点击该链接以在本地保存文件。