2011-10-13 59 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