XPCOM 在 Firefox 扩展中对文件进行加密/解密操作
我的 Firefox 扩展需要;
- 将用户凭据存储在将存储在用户本地的文件中 文件系统。
- 当需要凭据时,解密文件读取值并加密 再次。
- 有时通过http发送加密文件到服务器。
我找不到任何 XPCOM 组件来加密/解密文件。我应该编写自己的 XPCOM 对象,还是有其他合理的解决方案。
[笔记:] 这可能像Firefox的密码管理系统。 Firefox 将主密码和密钥存储在 key3.db 文件中,并使用这些值来访问存储在signons.sqlite 文件中的凭据。
Firefox 使用 nsILoginManager 接口进行操作。
My Firefox extension needs to;
- store user credentials in a file that will be stored in users local
filesystem. - when credentials are needed, decrypt file read values and encrypt it
again. - sometimes send encrypted file over http to a server.
I cant find any XPCOM component to encrypt / decrypt a file. Should i write my own XPCOM object, or is there any other reasonable solution for that.
[Note:]
This may like Firefox's password management system. Firefox stores master password and keys in key3.db file and use these values to access credentials stored in signons.sqlite file.
Firefox uses nsILoginManager interface for its operations.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
XPCOM 目前不提供使用 NSS 加密功能的方法。您可以使用 js-ctypes 直接调用 NSS 函数 - 不简单,但可行的。您可以查看 WeaveCrypto.js< /a> 模块用于使用对称密钥的示例实现。例如,DOMCrypt 扩展本质上捆绑了
WeaveCrypto.js
使用扩展程序,然后只调用其函数(不推荐使用随浏览器分发的版本 - 这是一个内部模块,其 API 可能随时更改)。XPCOM doesn't currently provide a way to use the encryption capabilities of NSS. You can use js-ctypes to call NSS functions directly - not simple but doable. You can take a look at the WeaveCrypto.js module for an example implementation using symmetric keys. The DOMCrypt extension for example essentially bundles
WeaveCrypto.js
with the extension and only calls its functions then (using the version distributed with the browser isn't recommendable - this is an internal module and its API could change any time).