我希望能够从Chrome浏览器中导出密码,以便可以打印副本。
我希望能够从Chrome浏览器中导出密码,以便可以打印副本。
Answers:
下面列出了几种解决方案,但并非所有解决方案都可以与最新版本的Chrome一起使用。“官方” Google Chrome / Canary解决方案是目前唯一可靠的解决方案。其他可能已过时的解决方案包括适用于所有操作系统的基于JS的解决方案,仅OSX的解决方案和仅Linux的解决方案(已确认可在Chrome 68中使用)。
chrome://flags
在地址栏中输入“ Chrome标志” 。Password import
和 Password export
,然后重新启动Chrome Canary。chrome://settings/passwords
,您会看到一个三点图标。单击它会显示IMPORT和EXPORT选项:更新:在较新的Canary版本中,有一个包含Export选项的单个三点按钮,而不是“导入/导出”按钮。
注意:从chrome v60 +开始,以下描述的方法不再起作用。
通过独立于操作系统的方式将Chrome密码提取为人类/电子表格可读格式的方法是通过Chrome Javascript API,如以下页面所述:
PasswordManager is not defined
):
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的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钥匙串。
此解决方案仍适用于当前版本的Chrome(v68)
下面的食谱是仅Linux的解决方案,摘自我之前创建的这篇博客文章。要将密码导出到可以在LibreOffice或Excel中打开的CSV电子表格,请执行以下操作:
使用以下命令行之一启动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
为新的临时配置文件设置Google同步,并等待所有内容从云同步,即,您的书签出现,扩展名显示,主题已应用等。通过在“设置”→“个人”下查看来验证密码是否已从Google云中还原资料→管理已保存的密码。如果没有出现,请再等几分钟。注意:要访问存储的密码页面,请打开设置,然后password
在右上角的“搜索”框中,“ 管理密码”将显示在页面底部。您也可以使用直接链接chrome://settings/passwords
。
退出Chrome。
接下来,打开一个终端并cd
进入新创建的Chrome配置文件:
cd /tmp/chrome-tmp/Default
现在,Login Data
使用sqlite3命令行实用程序打开数据库文件,并转储登录表。为此,您需要sqlite3
在系统上安装(大多数Linuces是预安装的,或在存储库中可用)。
sqlite3 'Login Data'
接下来,在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应用程序直接打开该文件,例如sqlitebrowser,sqliteman或sqlitestudio,其中前两个通常可以在Linux仓库中使用。
--password-store=...
arg无效。Login Data
仍然使用,但仅用于不适合钥匙串的元数据。因此,如果您想查看密码,请在Spotlight中键入Keychain Access。要将密码迁移到另一个OSX系统,您需要同时复制~/Library/Keychains/login.keychain
和 chrome配置文件~/Library/Application Support/Google/Chrome/<__YOUR_PROFILE_FOLDER__>
。如果您只有一个chrome配置文件,则将调用配置文件文件夹Default
。
ChromePass看起来像您想要的工具。有一些选项可以保存为HTML和纯文本,它们都很容易打印。
在这里找到最简单的解决方案:https : //www.axllent.org/docs/view/export-chrome-passwords/
自2016年7月/ 2016年8月起,Google引入了隐藏功能,可让您导入和导出密码。您当前要做的只是打开chrome://flags
设置中的隐藏功能,然后重新启动浏览器,然后您将拥有所需的功能。
chrome://flags/#password-import-export
,然后启用该功能。chrome://settings/passwords
(您可能需要等待一段时间才能同步密码),然后向下滚动到密码下方,您会看到两个新按钮,导入和导出。其他密码导出方法也相当复杂。因此,我编写了一个简单的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)
在ccpizza的答案结尾处,
chrome://settings/passwords
。似乎ccpizza提到的Chrome Canary功能现在可以在普通Chrome上使用。(我目前在Windows上的版本为72。)
根据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://flags/#password-import-export
页面(粘贴到地址栏中)。转到chrome://settings/passwords
,您应该看到“ 导出”按钮。
或者在DevTools Console(JS)中运行以下脚本:
chrome.passwordsPrivate.exportPasswords();
导出为CSV并验证其内容。
注意:如果CSV文件为空,请检查此Issue 808233。