2012-07-26 42 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