I want to be able to export passwords from Chrome browser so that I can make a printed copy.
8 Answers
There are several solutions listed below, not all of them might work with the latest versions of Chrome. The 'official' Google Chrome/Canary solution is the only one which is currently reliable. Other, potentially outdated solutions include a JS-based one for any OS, an OSX-only solution, and a Linux-only solution (confirmed to work in Chrome 68).
Official Chrome Import/Export buttons
- Required: Install latest Google Chrome (if latest stable google chrome does not work for you then try with the Chrome Canary).
- Log in with your google account, set up synching, and wait some minutes until all passwords are synched.
- Open Chrome Flags by typing
chrome://flagsin the address bar. - Locate and enable the options
Password importandPassword export, and restart Chrome Canary. - Now open
chrome://settings/passwordswhere you should see a three dot icon. Clicking it will show the IMPORT and EXPORT options:
Update: in more recent Canary versions instead of the Import/Export buttons there is a single three dot button that contains an Export option.
Javascript-based solution
Note: As of chrome v60+ the method described below does not work anymore.
An OS-independent way to extract the Chrome passwords to a human/spreadsheet readable format is via the Chrome Javascript API, as described on this page:
- Open chrome://settings-frame/passwords in your browser (also accessible from Chrome Settings > Show Advanced Settings... > Chrome Passwords).
- Open DevTools by right-clicking on the page > Inspect (or Ctr+Shift+I or ⌘+⌥+I).
- Click the Console tab.
- Click the dropdown that reads top (or <top frame>) and select the password frame: settings (password), as shown in the screeenshot (WARNING: Skipping this step will result in the error
PasswordManager is not defined):
- Next, paste the following code in the Console pane and press Enter (based on code from https://github.com/megmage/chrome-export-passwords which was cleaned up and made to work on 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);
IMPORTANT: This code is for versions of Chrome starting with v50. For earlier versions use the code linked in the original github page.
The passwords should appear on the same page in CSV format. Select and copy the output to a text file with .CSV extension — it can be opened in Excel/Libreoffice Calc. The format is compatible with Firefox Password Exporter, and can be used to import the passwords into Firefox.
Note to OSX users
Recent versions of Google Chrome/Chromium for OSX store passwords in the system keychain, which means that Chrome uses the OSX built-in credential storage mechanism (this is already outdated info).
On OSX you can export the passwords by running this in the terminal:
sudo security dump-keychain -d login.keychain > keychain.txt
And yes, you'll need to click Allow All as many times as you have domains in your login keychain, unless you use an autoclicker script. The link also points to a ruby script for converting the generated password file to CSV. The Ruby script worked for me after I removed the line containing proto.gsub!('htps', 'https');.
Alternatively you can use the native OSX app Keychain Access (type the name in Spotlight).
NOTE: As indicated by oarfish, Chrome stopped using the OSX Keychain as of v.45.
Linux-only solution to export passwords
This solution still works in current versions of chrome (v68)
The recipe below is a Linux-only solution and was taken from this blog post I created a while ago. To export your passwords to a CSV spreadsheet that can be opened in LibreOffice or Excel:
- If not already synced in Chrome, then connect to your Google Account in Chrome Settings so that your passwords are synced with the Google cloud storage. Make sure that you have ticked Passwords in Advanced Sync Settings.
- Wait for a while until the data is synched, and then close all the Chrome windows.
Start Chrome/Chromium using one of the command line below. This will launch Chrome with a custom profile folder without affecting your current chrome profile.
## for Chrome: google-chrome --user-data-dir=/tmp/chrome-tmp --password-store=basic ## for Chromium: chromium --user-data-dir=/tmp/chrome-tmp --password-store=basicSetup Google Synching for the new temporary profile and wait until everything is synced from the cloud, i.e. your bookmarks appear, extensions show up, the theme is applied, etc. Verify that the passwords are restored from the Google cloud by looking under Settings → Personal Stuff → Manage Saved Passwords. If they do not appear, then wait a couple of minutes more. Note: To access the stored passwords page open settings and
passwordin the Search box in the top right, the the Manage passwords will appear at the bottom of the page. You can also use the direct linkchrome://settings/passwords.Exit Chrome.
Next, open a terminal and
cdto the newly created Chrome profile:cd /tmp/chrome-tmp/DefaultNow, open the
Login Datadatabase file using the sqlite3 command line utility and dump the logins table. For this to work, you need to havesqlite3installed on your system (in most Linuces comes pre-installed or is available in the repos).sqlite3 'Login Data'Next, at the SQLite prompt enter the commands below. For help on available commands type
.helpat the prompt..mode csv # other options are `html', `tabs', etc. .headers on .separator "," .output chrome_passwords.csv select * from logins; .exit
Now you should have a file named chrome_passwords.csv containing all your Chrome passwords. To open it with LibreOffice, type:
libreoffice --calc chrome_passwords.csv
The Login Data file can be opened directly with a SQLite GUI app, such sqlitebrowser, sqliteman or sqlitestudio, of which the first two are normally available in Linux repos.
- 8,241
ChromePass looks like the tool you want. There are options to save out to HTML and plaintext, both of which are very easy to print.
- 358
Found the easiest solution here: https://www.axllent.org/docs/view/export-chrome-passwords/
As of July/August 2016 Google introduced a hidden feature that allows you to import & export your passwords. All you currently need to do is turn on the hidden feature in the chrome://flags settings and restart your browser, after which you'll have the required functionality.
Instructions
- In your Google Chrome (or Chromium, whichever you use), type the following in your URL bar:
chrome://flags/#password-import-export, and then enable the feature. - Restart your browser.
- Go to your passwords
chrome://settings/passwords(you may have to wait a little while for your passwords to sync), then scroll down to below your passwords and you'll see two new buttons, Import & Export. - Click Export, making sure you select the correct format (CSV).
- 506
The other password export methods are fairly involved; for this reason, I wrote a simple javascript snippet to take care of the job.
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,891
- 21
As at the end of ccpizza's answer,
- Go to
chrome://settings/passwords. - Click the three dots to the far right of Saved Passwords.
- Click the Export menu item that appears.
It seems the Chrome Canary functionality that ccpizza mentions is now live on normal Chrome. (I'm currently at Version 72, on Windows.)
- 300
Working from alog's answer i found that the most recent versions of chrome will only output url and username due to the requirement to enter your windows password to view a password. you can still use the snippet but only after clicking and entering your windows password for every entry in the list.
so i created a jquery snippet for more recent versions of chrome to get around this.
As before enter developer mode (f12) whilst viewing your password manager in chrome. Make sure the frame is set to settings( password ) , usually on the top left of the console view.
Go Here - Jquery 2.1.4 and copy/paste the jquery code into console, press enter.
Now you can paste the code below into the console and it will list your passwords there. You can then paste into excel and use the text to columns (first result on google) delimiter function. (dont forget to set your delimiter in the code & match in 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);
You will still need to enter your windows password but it should only be once. Also remember to check that all the passwords have turned to passwords as some can be missed.If it fails first time please try rerunning the code (arrow up then enter) as jquery may pull the value before chrome enters the password into the input.
Hope it helps someone, Apologies for the jQuery - was purely for my own convenience.
And of course if you lose your passwords because of this script (not that this should) then ... your own actions ... not intended ... blah etc
UPDATE
as ccpizza states the above code has stopped working so here is an update for those who still wish to do theirs simply:
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
also should mention if you are accessing the settings frame by chrome://settings/passwords you will need to select the frame first. Alternatively you can use: chrome://settings-frame/passwords which should allow direct access.
- 101
- Go to
chrome://flags/#password-import-exportpage (paste into address bar). - Enable Password import and export and restart web browser.
Go to
chrome://settings/passwords, you should see the Export button.Alternatively run this script in DevTools Console (JS):
chrome.passwordsPrivate.exportPasswords();Export into CSV and verify the content of it.
Note: If CSV file is empty, check this Issue 808233.
See also
Related: Google Chrome: Import/Export Passwords?
Projects: megmage/chrome-export-passwords, ChromePass.
Gists: Grogs/step4.js, codekoala/export_chrome_passwords.js.
- 26,615
