在浏览器中加密/解密二进制数据

时间:2012-07-26 09:20:54

标签: javascript browser binary-data

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

    要从服务器接收数据,我建议将XMLHttpRequestresponseType = "arraybuffer"一起使用。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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