如何导出Chrome密码?


Answers:


29

下面列出了几种解决方案,但并非所有解决方案都可以与最新版本的Chrome一起使用。“官方” Google Chrome / Canary解决方案是目前唯一可靠的解决方案。其他可能已过时的解决方案包括适用于所有操作系统的基于JS的解决方案,仅OSX的解决方案和仅Linux的解决方案(已确认可在Chrome 68中使用)。

官方的Chrome导入/导出按钮

  1. 必需:安装最新的Google Chrome(如果最新的稳定版google chrome对您不起作用,请尝试使用Chrome Canary)。
  2. 使用您的Google帐户登录,设置同步,然后等待几分钟,直到同步所有密码。
  3. chrome://flags在地址栏中输入“ Chrome标志” 。
  4. 找到并启用选项Password importPassword export,然后重新启动Chrome Canary。
  5. 现在打开chrome://settings/passwords,您会看到一个三点图标。单击它会显示IMPORTEXPORT选项:

Chrome密码导入/导出

更新:在较新的Canary版本中,有一个包含Export选项的单个三点按钮,而不是“导入/导出”按钮。

基于Javascript的解决方案

注意:从chrome v60 +开始,以下描述的方法不再起作用。

通过独立于操作系统的方式将Chrome密码提取为人类/电子表格可读格式的方法是通过Chrome Javascript API,如以下页面所述

  1. 在浏览器中打开chrome:// settings-frame / password(也可以从Chrome设置> 显示高级设置... > Chrome密码进行访问)。
  2. 右键单击页面> 检查(或Ctr+Shift+I⌘+⌥+I),打开DevTools 。
  3. 单击Console选项卡。
  4. 单击显示为top(或<top frame>)的下拉列表,然后选择密码框架:settings (password),如screeenshot中所示(警告:跳过此步骤将导致错误PasswordManager is not defined): Chrome开发者工具控制台标签
  5. 接下来,将以下代码粘贴到“控制台”窗格中,然后按Enter(基于来自https://github.com/megmage/chrome-export-passwords的代码,该代码已清理并可以在Chrome v50 +上运行):
var out = [];
var pm = PasswordManager.getInstance();
var model = pm.savedPasswordsList_.dataModel;
console.log(model);
var pl = pm.savedPasswordsList_;
for (var i = 0; i < model.length; i++) {
    PasswordManager.requestShowPassword(i);
}
alert('After you press Ok results should appear in ~5 seconds.\n' +
    "If password fields are empty, try increasing the timeout in the last line," +
    " i.e. set to 10000 for 10 seconds");
setTimeout(
    function () {
        out.push('# Generated by Password Exporter; Export format 1.1; Encrypted: false');
        out.push('"hostname","username","password","formSubmitURL","httpRealm","usernameField","passwordField"');
        for (var i = 0; i < model.length; i++) {
            var record = model.array_[i];
            var user = record.username;
            var item = pl.getListItemByIndex(i);
            var pass = item.querySelector('div.password input').value;
            var proto = record.url.split('://')[0];
            var line = `"${proto}://${record.shownOrigin}", "${user}", "${pass}", "${record.url}", ," "," "," "`;
            out.push(line);
            console.log(line);
        }
        document.body.innerText = out.join('\n');
    }, 5000);

重要提示:此代码适用于从v50开始的Chrome版本。对于早期版本,请使用原始github页面中链接的代码。

密码应以CSV格式显示在同一页面上。选择输出并将其复制到带有.CSV扩展名的文本文件中-可以在Excel / Libreoffice Calc中打开它。该格式与Firefox Password Exporter兼容,可用于将密码导入Firefox。

OSX用户注意事项

适用于OSX的Google Chrome / Chromium的最新版本将密码存储在系统钥匙串中,这意味着Chrome使用OSX内置的凭据存储机制此信息已经过时)。

在OSX上,可以通过在终端中运行以下密码来导出密码:

sudo security dump-keychain -d login.keychain > keychain.txt

是的,除非您使用autoclicker脚本,否则您需要单击“ 全部允许”次数与登录钥匙串中的域一样多。该链接还指向ruby脚本,用于将生成的密码文件转换为CSV。在删除包含的行后,Ruby脚本对我有用。proto.gsub!('htps', 'https');

或者,您可以使用本机OSX应用程序“ 钥匙串访问”(在Spotlight中键入名称)。

注意oarfish所示,Chrome 从45版起停止使用OSX钥匙串。

仅限Linux的导出密码的解决方案

此解决方案仍适用于当前版本的Chrome(v68)

下面的食谱是仅Linux的解决方案,摘自我之前创建的这篇博客文章。要将密码导出到可以在LibreOffice或Excel中打开的CSV电子表格,请执行以下操作:

  1. 如果尚未在Chrome中同步,请在“ Chrome设置”中连接到您的Google帐户,以便将密码与Google云存储同步。确保已在“ 高级同步设置”中选中了“ 密码
  2. 等待一段时间,直到数据同步,然后关闭所有Chrome窗口。
  3. 使用以下命令行之一启动Chrome / Chromium。这将使用自定义配置文件文件夹启动Chrome,而不会影响您当前的Chrome配置文件。

    ## for Chrome:
    google-chrome --user-data-dir=/tmp/chrome-tmp --password-store=basic
    
    ## for Chromium:
    chromium --user-data-dir=/tmp/chrome-tmp --password-store=basic
    
  4. 为新的临时配置文件设置Google同步,并等待所有内容从云同步,即,您的书签出现,扩展名显示,主题已应用等。通过在“设置”→“个人”下查看来验证密码是否已从Google云中还原资料→管理已保存的密码。如果没有出现,请再等几分钟。注意:要访问存储的密码页面,请打开设置,然后password在右上角的“搜索”框中,“ 管理密码”将显示在页面底部。您也可以使用直接链接chrome://settings/passwords

  5. 退出Chrome。

  6. 接下来,打开一个终端并cd进入新创建的Chrome配置文件:

    cd /tmp/chrome-tmp/Default
    
  7. 现在,Login Data使用sqlite3命令行实用程序打开数据库文件,并转储登录表。为此,您需要sqlite3在系统上安装(大多数Linuces是预安装的,或在存储库中可用)。

    sqlite3 'Login Data'
    
  8. 接下来,在SQLite提示符下输入以下命令。有关可用命令的帮助,请.help在提示符下键入。

    .mode csv               # other options are `html', `tabs', etc.
    .headers on
    .separator ","
    .output chrome_passwords.csv
    select * from logins;
    .exit
    

现在,您应该有一个名为的文件,chrome_passwords.csv其中包含您所有的Chrome密码。要使用LibreOffice打开它,请输入:

    libreoffice --calc chrome_passwords.csv

Login Data可以使用SQLite GUI应用程序直接打开该文件,例如sqlitebrowsersqlitemansqlitestudio,其中前两个通常可以在Linux仓库中使用。


1
@m_gol:在OSX上,Chrome将密码存储在钥匙串中,而--password-store=...arg无效。Login Data仍然使用,但仅用于不适合钥匙串的元数据。因此,如果您想查看密码,请在Spotlight中键入Keychain Access。要将密码迁移到另一个OSX系统,您需要同时复制~/Library/Keychains/login.keychain chrome配置文件~/Library/Application Support/Google/Chrome/<__YOUR_PROFILE_FOLDER__>。如果您只有一个chrome配置文件,则将调用配置文件文件夹Default
ccpizza 2014年

1
@confiq:这些步骤在Ubuntu的47版中确实有效,并且我认为它也可以在较早版本中使用。
ccpizza

1
注意:从45开始,Chrome不再使用钥匙串。bugs.chromium.org/p/chromium/issues/detail?id=466638
ar鱼2016年

2
刚刚使用此帖子导出了所有内容productforums.google.com/d/msg/chrome/99KZmH2DRrA/5l37AibyAwAJ就像一个超级按钮一样,只有一个没有导出按钮:找到“已保存密码”标题旁边的三个垂直点,然后您将查找'export'@ccpizza:也许更新答案?
彼得·韦斯妮

1
@ccpizza,有一个适用于Chrome 63+的新JS解决方案:gist.github.com/ryanpcmcquen/cee082bff514f8849a29c409fe3571ff
ryanpcmcquen

7

ChromePass看起来像您想要的工具。有一些选项可以保存为HTML和纯文本,它们都很容易打印。


Chrome在尝试下载* .exe时发出警告。可以下载吗?
2014年

看起来很稳定。我尝试过,尽管Windows Defender认为它是恶意软件,但我尚未看到对系统进行任何更改。
Jedidja

5
“我还没有看到对系统进行任何更改。” 那没什么意思!大多数程序(全部?)会执行您没有注意到的更改,许多程序会执行您从未注意到的事情。
菲利普·哈格隆德

4

在这里找到最简单的解决方案:https : //www.axllent.org/docs/view/export-chrome-passwords/

自2016年7月/ 2016年8月起,Google引入了隐藏功能,可让您导入和导出密码。您当前要做的只是打开chrome://flags设置中的隐藏功能,然后重新启动浏览器,然后您将拥有所需的功能。

使用说明

  • 在您的Google Chrome浏览器(或Chromium,无论使用哪种方式)中,在URL栏中键入以下内容:chrome://flags/#password-import-export,然后启用该功能。
  • 重新启动浏览器。
  • 转到您的密码chrome://settings/passwords(您可能需要等待一段时间才能同步密码),然后向下滚动到密码下方,您会看到两个新按钮,导入和导出。
  • 单击导出,确保选择正确的格式(CSV)。

如此简单..我很惊讶这不是最受欢迎的答案。
克里斯(Kris)

即使带有标志,我也看不到所描述的导入/导出按钮。由于可以在passwords.google.com上访问密码,因此该页面可能没有任何选项,因此可能已将其全部删除。
CopyJosh

当前在Ubuntu 16.04上运行Chromium 59.0.3071.109,我仍然可以使用该选项。
艾米连(Emilien)

从最新版本的Chrome(19年2月)起,该功能不再起作用。
SamAndrew81

2
在Ubuntu 16.04(64位)上运行Chromium 73.0.3683.75版本,我确认#password-import-export功能不再存在,似乎只剩下一个Import功能:chrome:// flags /#PasswordImport(这不是我们想要的)。此页面productforums.google.com/forum/#!topic/chrome/99KZmH2DRrA确认该选项已消失,但指示“在chrome:// settings / passwords中,单击3点菜单图标以选择“导入和导出”。(虽然我似乎没有3点菜单图标……但是也许是因为我不再在Chromium中保存任何密码了?)FWIW ...
Emilien

2

其他密码导出方法也相当复杂。因此,我编写了一个简单的javascript代码段来完成这项工作

simple script to export chrome passwords, run when the password manager is open from the chrome console (hit f12 to access the console) in frame settings( passwords )

out="";out2="";dat=document.getElementsByClassName("password");

for(i=0;i<dat.length;i++){x=dat[i].parentNode;

out+="\n"+x.childNodes[0].innerText+"|"+x.childNodes[1].innerText+"|"+x.childNodes[2].childNodes[0].value;

out2+="br/>"+x.childNodes[0].innerText+"|"+x.childNodes[1].innerText+"|"+x.childNodes[2].childNodes[0].value;};console.log(out);

document.write(out2)

1
从Chrome 37开始,此功能无效。看起来任何类型的dom元素获取api都在该页面上返回null :(
Ed Orsi 2014年

@EdOrsi您需要选择正确的框架(正如他的回答中已经提到的那样)
Stijn de Witt 2015年

@alog非常感谢您,这个回答对我很有帮助!
Stijn de Witt

1

在ccpizza的答案结尾处,

  1. 转到chrome://settings/passwords
  2. 单击“保存的密码”最右边的三个点。
  3. 单击出现的“导出”菜单项。

似乎ccpizza提到的Chrome Canary功能现在可以在普通Chrome上使用。(我目前在Windows上的版本为72。)


0

根据alog的答案,我发现chrome的最新版本仅会输出url和用户名,原因是需要输入Windows密码才能查看密码。您仍然可以使用该代码段,但只能在单击并输入列表中每个条目的Windows密码之后才能使用。

所以我为chrome的最新版本创建了一个jQuery片段来解决这个问题。

和以前一样,进入开发人员模式(f12),同时使用chrome浏览密码管理器。确保框架设置为settings(password),通常位于控制台视图的左上方。

转到此处-Jquery 2.1.4,然后将jquery代码复制/粘贴到控制台中,然后按Enter。

现在,您可以将以下代码粘贴到控制台中,它将在其中列出您的密码。然后,您可以粘贴到excel中,并使用文本到列(在Google上的第一个结果)分隔符功能。(不要忘记在代码中设置分隔符并在excel中进行匹配。)

var out = '', delim = "|";
$.each($('.password input'), function(){
    if($(this).hasClass('inactive-password')) $(this).next('button').click();

    var C = $(this).closest('div[role=listitem]'),
        D = C.find('.url').text(),
        U = C.find('.name').text(),
        P = $(this).val();
    out += D + delim + U + delim + P +"\n";
});
console.log(out);

您仍然需要输入Windows密码,但只能输入一次。还要记住检查所有密码是否都已变成密码,否则可能会被遗漏,如果第一次失败请尝试重新运行代码(按箭头键向上输入),因为jQuery可能会在chrome将密码输入到输入中之前提取该值。

希望它对某人有帮助,jQuery的歉意-纯粹是为了我自己的方便。

当然,如果您因为该脚本而丢失了密码(并非应该如此),那么……您自己的行动……不想要的……等等

更新

正如ccpizza指出的那样,上述代码已停止工作,因此,对于那些仍然希望简单地执行以下操作的人来说,这里是一个更新:

var out = '', delim = "|";
$.each($('.password input'), function(){
    if($(this).attr('type') == 'password' ) $(this).next('button').click();

    var C = $(this).closest('div[role=listitem]'),
        D = C.find('.url a').attr('href'),
        U = C.find('.name input').val(),
        P = $(this).val();

    out += D + delim + U + delim + P +"\n";
});
console.log(out);

如果要访问设置框架,则UPDATE 2还应提及,chrome://settings/passwords您需要首先选择框架。或者,您可以使用:chrome://settings-frame/passwords应该允许直接访问。


这在最新的chrome版本(例如51.0.2704.84)中不起作用-仅列出登录名。
ccpizza

0
  1. 转到chrome://flags/#password-import-export页面(粘贴到地址栏中)。
  2. 启用密码导入和导出,然后重新启动Web浏览器。
  3. 转到chrome://settings/passwords,您应该看到“ 导出”按钮。

    或者在DevTools Console(JS)中运行以下脚本:

    chrome.passwordsPrivate.exportPasswords();
    
  4. 导出为CSV并验证其内容。

    注意:如果CSV文件为空,请检查此Issue 808233


也可以看看

相关:谷歌浏览器:导入/导出密码?

项目:megmage/chrome-export-passwordsChromePass

要点:Grogs/step4.jscodekoala/export_chrome_passwords.js


0

安装Dashlane(密码管理器应用程序),您可以在其中自动导入所有Google存储的密码(启动时会要求输入密码),然后使用该应用程序将其导出到存档文件(例如CSV或Excel格式)中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.