2011-10-13 51 views
1

我的Firefox擴展需要;XPCOM Firefox擴展中的文件加密/解密操作

  • 存儲用戶憑據文件將存儲在用戶的本地文件系統
  • 需要憑據時,解密文件再次讀取值和加密它 。
  • 有時將加密文件通過http發送到服務器。

我找不到任何XPCOM組件加密/解密一個文件。我應該編寫自己的XPCOM對象,還是有任何其他合理的解決方案。

[注意:] 這可能就像Firefox的密碼管理系統。 Firefox將主密碼和密鑰存儲在key3.db文件中,並使用這些值訪問存儲在signons.sqlite文件中的憑證。

Firefox使用nsILoginManager接口進行操作。

回答

2

XPCOM目前不提供使用NSS的加密功能的方法。您可以使用js-ctypes直接調用NSS函數 - 不是簡單但可行。您可以查看WeaveCrypto.js模塊,瞭解使用對稱密鑰的示例實現。例如,DOMCrypt extension實質上與WeaveCrypto.js捆綁在一起,只是調用其功能,然後(使用與瀏覽器一起發佈的版本不被推薦 - 這是一個內部模塊,它的API可以隨時更改)。

+0

感謝您的回答弗拉基米爾。我正在尋找文件加密/解密操作[不明白],但我找不到任何方式來做到這一點。我的另一個大問題是將對稱密鑰保密。這是客戶端應用程序,所以我必須爲客戶提供密鑰,這是不安全的。在混淆的java代碼中使用LiveConnect和硬編碼密鑰有什麼用?但是這一次,我會依賴於JRE並且會有性能上的損失。使用LiveConnect過程很簡單嗎? – yuceel

+1

加密/解密文件的操作顯然不包括將文件讀入字符串並加密/解密字符串;)。並且在客戶端存儲**對齊加密密鑰的**沒有安全的方式,忘記它。根據您的使用情況,您可能會考慮非對稱加密。 –

+0

感謝弗拉基米爾。我會在這裏找到適合我的上下文並更新的方法。但我仍然想知道firefox如何處理其key3.db來存儲enc/dec密鑰。 [或者如何讓主密碼保密]。謝謝。 – yuceel