下载过程中的Javascript解密

Javascript Decryption during Download

本文关键字:解密 Javascript 过程中 下载      更新时间:2023-09-26

我正在构建一个ASPX网站,应该允许用户下载CSV/Excel文件(包括'Save to '对话框)。CSV包含加密的数据-解密密钥在用户端可用,并且应该对web服务保密。因此,解密实际上应该在浏览器内执行,javascript实现(sjcl)已被证明可以正常工作。但是在文件下载期间传入的数据流如何受到影响呢?像浏览器托管代理执行javascript解密?

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

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

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

实现这一目标的步骤如下:

  1. 不是直接下载CSV到客户端机器,而是通过ajax获取它
  2. 通过Ajax接收到数据后,通过internet上许多可用的函数解析CSV。如果你需要帮助,请告诉我。这个函数将CSV转换为原生Javascript数组。
  3. 遍历数组并将加密数据转换为未加密数据。在同一个Array中本地执行。
  4. 将数组转换为CSV(同样有公共领域的函数)
  5. 创建一个链接(一个元素),并将href设置为本地数据,如data:text/csv;charset=utf-8, + encodeURIComponent(csv)
  6. 将此链接呈现给用户,并让他点击该链接将文件保存到本地。