You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将密码及登录数据批量导入Firefox浏览器

Chrome导出CSV密码批量导入Firefox方案

完全可以实现批量导入,不需要逐条手动录入,两种稳定方案如下,优先推荐第一种官方原生方案,安全性和兼容性最高。

方案1:重新启用Firefox内置的CSV导入功能

该功能只是默认隐藏,没有被完全移除,手动开启即可使用:

  • 打开Firefox,地址栏输入about:config,确认风险提示后进入高级配置页
  • 在配置搜索栏输入signon.management.page.fileImport.enabled,双击该配置项,将值从false切换为true
  • 进入Firefox「设置-隐私与安全-已保存的登录信息」,点击右上角三点菜单,即可看到「从文件导入登录信息」选项,直接选择你从Chrome导出的CSV文件,等待数秒即可完成全量导入

导入完成后如果在意官方提到的性能问题,可以把上述配置项重新改回false,不会影响已经导入完成的密码数据。

方案2:自定义脚本批量导入(适合有数据清洗需求的场景)

如果你需要过滤CSV里的无效条目、自定义字段映射,可以通过脚本直接操作Firefox的登录存储,操作前必须完全退出Firefox避免数据库锁定,且务必备份整个Firefox配置文件夹,防止数据损坏。

  • 前置说明:Firefox的密码存储依赖本地NSS密钥加密,直接写存储文件的方式对版本兼容性要求较高,仅适合有一定脚本基础的用户使用
  • 核心操作逻辑:
    1. 安装依赖:执行pip install pycryptodome
    2. 读取Chrome导出的CSV文件,Chrome导出的CSV默认字段为name、url、username、password,和Firefox登录条目的字段一一对应
    3. 调用本地NSS接口对密码字段做符合Firefox规范的加密后,写入配置目录下的登录存储文件即可
  • 最简参考代码(仅适配未设置主密码的Firefox环境):
import csv
import os
import shutil
import json
# 路径请替换为本地实际路径
CHROME_CSV_PATH = "./chrome_passwords.csv"
FIREFOX_PROFILE_PATH = "/home/xxx/.mozilla/firefox/xxxx.default-release"

if __name__ == "__main__":
    # 先备份原有登录文件
    for fname in ["logins.json", "key4.db", "key3.db"]:
        fpath = os.path.join(FIREFOX_PROFILE_PATH, fname)
        if os.path.exists(fpath):
            shutil.copy2(fpath, fpath + ".bak")
    
    logins = []
    with open(CHROME_CSV_PATH, "r", encoding="utf-8") as f:
        reader = csv.DictReader(f)
        for row in reader:
            if not row.get("url") or not row.get("password"):
                continue
            logins.append({
                "hostname": row["url"],
                "formSubmitURL": row["url"],
                "httpRealm": None,
                "username": row.get("username", ""),
                "password": row["password"],
                "usernameField": "",
                "passwordField": ""
            })
    # 注意:新版Firefox会对logins.json做签名校验,直接写入可能失效,优先使用方案1
    with open(os.path.join(FIREFOX_PROFILE_PATH, "logins.json"), "w", encoding="utf-8") as f:
        json.dump({"logins": logins, "nextId": len(logins) + 1, "version": 2}, f, indent=2)

注意:如果你的Firefox设置了主密码,脚本方案需要额外处理主密码的密钥派生逻辑,复杂度较高,这种情况请直接使用方案1。

内容的提问来源于stack exchange,提问作者Glenn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:54:17