2012-07-26 107 views
1

我正在开发一个项目,该项目需要客户端对从服务器收到的二进制数据进行解密。该方案是服务器以压缩和加密形式提供二进制数据。浏览器需要接收这些数据(文件),解密并解压缩它们,然后将它们下载到本地机器上的用户指定位置。我知道他们在浏览器中这样做有几个局限性 -在浏览器中加密/解密二进制数据

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

  2. 也可以javascript(或任何其他技术)在浏览器中用于解密(AES-256),并解压缩在浏览器内该数据流?

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

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

回答

2
  1. 您无法直接访问用户的文件系统。尽管如此,HTML5 file system API可用于将数据保存在虚拟的沙盒文件系统中。
  2. CryptoJS对SHA-2
  3. implementation

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

+0

关于你更新的问题:CryptoJS还支持AES(AES-128,AES-192和AES-256):http://code.google.com/p/crypto-js/#AES。 – 2012-07-26 10:02:59

0

SHA-2是不加密或解密数据的方法,它的哈希算法,它是用来确定数据是否已被篡改用。加密算法是:DES,3-DES,AES等。

我怀疑你需要对你有的数据产生一个散列,并与你收到的散列进行比较。

+0

谢谢。这是一个错字。我已将算法更新为AES。 – Vikesh 2012-07-26 09:50:09