IT Zug IT Zug, Switzerland

6Jul/100

Firefox: Printing passwords (for migration, …)

firefox-128

A nice way to print user/password information saved in Firefox password manager can be found at:

http://kb.mozillazine.org/Password_Manager#Printing_passwords

Simply copy the following code into the "Error Console" (Tools-Menu within Firefox) and click the Evaluate button:

(function(){
function twodigs(str) {return (str.length < 2) ? "0" + str : str;}
function fourdigs(num){return (num < 1000) ? num + 2000 : num;}

var now = new Date();
var hours = twodigs(now.getHours() + "") ;
var minutes = twodigs(now.getMinutes() + "") ;
var seconds = twodigs(now.getSeconds() + "") ;

var timeValue = " | At  " + hours + ":" + minutes + ":" + seconds;
var days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();

var today =  "On " + days[now.getDay()] + ", " + date + " " + months[now.getMonth()] + " " +    (fourdigs(now.getYear())) + timeValue ;

var Cc = Components.classes;
var Ci = Components.interfaces;

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

var tokendb = Cc["@mozilla.org/security/pk11tokendb;1"].createInstance(Ci.nsIPK11TokenDB);
var token = tokendb.getInternalKeyToken();

try {token.login(true);} catch (e) {}

if (token.isLoggedIn()) {
 var passwordmanager = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
 var names="",signons = passwordmanager.getAllLogins({});

 for (i=0;i<signons.length;i++) {
  try {
   var host = signons[i].hostname;
   var realm = signons[i].httpRealm;
   var user = signons[i].username;
   var userf = signons[i].usernameField;
   var password = signons[i].password;
   var passwordf = signons[i].passwordField;
   var submiturl = signons[i].formSubmitURL;
   if (user == ""){ user = "<br>"; }
   names+="  <tr>\n    <td> " + host + " </td>\n    <td> " + user + " </td>\n    <td> " + password + "  </td>\n    <td> " + submiturl + " </td>\n  </tr>\n";
   } catch(e) {}
 }

 void(window.open('data:text/html,
<html><head>
<meta http-equiv=content-type" content="text/html; charset=ISO-8859-1">

<title>Exported Mozilla Passwords</title>
<style type="text/css">
 td {
  font-family: "Trebuchet MS", Arial, Verdana, Sans-Serif;
  font-size: 85%;
  padding: 1px 2px 1px 2px;
}
</style>
</head><body style="margin: 1em 3em; background-color: rgb(255, 221, 221);">
<b>MOZILLA PASSWORD INFORMATION</b>
<p>Produced by <i>Pasting Code in the "Tools > Error Console: Code field"</i> (by "ernie" - Andrew Poth - Ed Mullen - adapted by dickvl@kb.mozillazine.org to run in the Error Console)<br>'+today+
'</p><p>
<table style="empty-cells: show; background-color: rgb(221, 255, 221);" border="1" cellspacing="0">
<tbody><tr style="background-color: rgb(204, 204, 255);">
<td>
<b>Host</b>
</td>
<td>
<b>User name</b>
</td>
<td>
<b>Password</b>
</td>
<td>
<b>Submit URL</b>
</td>
</tr>'+names+'</tbody></table>
</p></body></html>',"","menubar=yes,resizable=yes,scrollbars=yes,width=1000,height:600"));
}
})();