2

我正在开发一个需要客户端解密从服务器接收到的二进制数据的项目。该场景是服务器具有压缩和加密形式的二进制数据。浏览器需要接收这些数据(文件),解密和解压缩它们,然后将它们下载到本地机器上用户指定的位置。我了解在浏览器中执行此操作有几个限制 -

  1. Javascript 是否可以访问本地存储。我可以将多个文件写入/流式传输到硬盘上用户指定的位置吗?如果是这样,要寻找哪些 API。

  2. 可以在浏览器中使用 Javascript(或任何其他技术)在浏览器中解密(AES-256)和解压缩此数据流吗?

使用HTML5 的FileAPI可以解决这些问题吗?

编辑:
用 AES 替换 SHA2。我们使用 SHA2 进行完整性检查,而不是用于加密。这是一个错字。

4

3 回答 3

2
  1. 您不能直接访问用户的文件系统。不过,HTML5 文件系统 API可用于将数据保存在虚拟的沙盒文件系统中。
  2. CryptoJS 有一个SHA-2的实现

要从服务器接收数据,我建议使用XMLHttpRequestwith responseType = "arraybuffer"

于 2012-07-26T09:25:22.163 回答
1

我建议你使用一个 javascript 密码库,这里是一个:http ://code.google.com/p/crypto-js/

于 2012-07-26T09:25:34.643 回答
0

SHA-2 不是加密或解密数据的手段,它是一种哈希算法,用于确定数据是否被篡改。加密算法有:DES、3-DES、AES等。

我怀疑您需要对您拥有的数据生成一个哈希值并与您收到的哈希值进行比较。

于 2012-07-26T09:32:46.647 回答