import passwords from dashlane
I exported my passwords from dashlane to a csv. The only information in the csv is url, domain, username, password. It is missing the form action, time stamps, and guid. Importing from file did not work. I re-ordered the info so it was in "url","username","password","httpRealm","formActionOrigin","guid","timeCreated","timeLastUsed","timePasswordChanged" format (once again, missing the last 5 fields). I made some fake passwords in firefox to see the format. form action was blank anyways. I tried copying the time info fields (from the fake passwords I made) to my csv, still didn't work. I think I probably need a guid? I tried leaving it blank, didn't work. I tried putting in "unk", didn't work.
I give up, please, how do I import passwords from Dashlane?
I can export in json, excel, and csv.
الحل المُختار
I think that origin (url) and username and password should be sufficient.
- https://support.mozilla.org/en-US/kb/import-login-data-file
- https://searchfox.org/mozilla-release/source/toolkit/components/passwordmgr/LoginCSVImport.jsm
Are there errors reported in the Browser Console ? You can temporarily set signon.debug = true on the about:config page.
Enable the command line in the Browser Console:
- select "Enable browser chrome and add-on debugging toolboxes" in the developer tools settings
- https://developer.mozilla.org/en-US/Tools/Settings
- https://developer.mozilla.org/en-US/Tools/Browser_Console
The JSON file should have this format: Array of JSON login records separated by commas [{login1},{login2}] with at least username and password and hostname key:value pairs.
- [{"username":"xxx","password":"xxx","hostname":"https://xxx"}]
/* export logins in JSON format */ var lg = prompt("Logins",JSON.stringify(Services.logins.getAllLogins())); /* import logins in JSON format */ if (lg = prompt("Logins JSON: [{},{}]","?")){ lg = JSON.parse(lg); try {/*[60+]*/ for(i=0;LG=lg[i];i++){if(!LG.origin){LG.origin = LG.hostname}} ChromeUtils.import("resource://gre/modules/LoginHelper.jsm"); LoginHelper.maybeImportLogins(lg); } catch(e){console.log(e);} }Read this answer in context 👍 0
All Replies (3)
help please? mozilla, where you at?
الحل المُختار
I think that origin (url) and username and password should be sufficient.
- https://support.mozilla.org/en-US/kb/import-login-data-file
- https://searchfox.org/mozilla-release/source/toolkit/components/passwordmgr/LoginCSVImport.jsm
Are there errors reported in the Browser Console ? You can temporarily set signon.debug = true on the about:config page.
Enable the command line in the Browser Console:
- select "Enable browser chrome and add-on debugging toolboxes" in the developer tools settings
- https://developer.mozilla.org/en-US/Tools/Settings
- https://developer.mozilla.org/en-US/Tools/Browser_Console
The JSON file should have this format: Array of JSON login records separated by commas [{login1},{login2}] with at least username and password and hostname key:value pairs.
- [{"username":"xxx","password":"xxx","hostname":"https://xxx"}]
/* export logins in JSON format */ var lg = prompt("Logins",JSON.stringify(Services.logins.getAllLogins())); /* import logins in JSON format */ if (lg = prompt("Logins JSON: [{},{}]","?")){ lg = JSON.parse(lg); try {/*[60+]*/ for(i=0;LG=lg[i];i++){if(!LG.origin){LG.origin = LG.hostname}} ChromeUtils.import("resource://gre/modules/LoginHelper.jsm"); LoginHelper.maybeImportLogins(lg); } catch(e){console.log(e);} }
I dont see an option to import json files, just csv. It took a bit of tweaking and figuring of all the "got-yahs" but I was able to write a script to convert dashlane json to make-firefox-happy csv. The output console was happy or I never would have realized that the urls needed to start with http
import json
header = "\"url\",\"username\",\"password\",\"httpRealm\",\"formActionOrigin\",\"guid\",\"timeCreated\",\"timeLastUsed\",\"timePasswordChanged\"\n" print(header)
f = open("<path to output file.csv>","w")
f.write(header)
uname = "" pswd = "" outputstr = ""
with open('<path to json input file>') as json_file:
data = json.load(json_file) for p in data['AUTHENTIFIANT']: dom = "https://" if p['domain'] or p['title']: dom += p['domain'] if p['domain'] else p['title'] if p['email']: uname = p['email'] elif p['login']: uname = p['login'] else: print("error: login: " + p['domain']) if p['password']: pswd = p['password'] else: print("error: password: " + p['domain']) else: print("error: domain") outputstr = '\"' + dom + '\",' + '\"' + uname + '\",' + '\"' + pswd + '\",' + ',\"\",,,,' + '\n' f.write(outputstr)
f.close()