<?xml version="1.0"?>
<!DOCTYPE content [ <!ENTITY nbsp " "> ]>
<rdf:RDF xml:base="http://snarfed.org/rdf"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="http://snarfed.org">
  <dc:title> snarfed.org  </dc:title>
  <dc:description> draw group stream of consciousness </dc:description>
  <dc:creator> Ryan Barrett &lt;snarfed at ryanb dot org&gt; </dc:creator>
  <dc:language> en </dc:language>
  <dc:format> text/html </dc:format>
  <dc:rights> Copyright 2002-2007 Ryan Barrett </dc:rights>
</rdf:Description>

<rdf:Description rdf:about="http://snarfed.org/space/change%20firefox%27s%20saved%20passwords">
  <dc:title> change firefox's saved passwords </dc:title>
  <dc:creator> Ryan Barrett &lt;snarfed at ryanb dot org&gt; </dc:creator>
  <dc:date> 2003-01-01T05:00:00Z </dc:date>
  <dc:language> en </dc:language>
  <dc:format> text/html </dc:format>
  <dc:rights> Copyright 2002-2007 Ryan Barrett </dc:rights>

  <content>
    <p><a href="http://getfirefox.com/"><img src="/space/firefox.png" alt="firefox.png" title="" /></a></p>

<p>One
of my favorite <a href="http://getfirefox.com/">Firefox</a> features is <a href="http://www.mozilla.org/support/firefox/options#privacy">Saved
Passwords</a>, which saves
usernames and passwords for sites that require a login. Combined with the
<a href="http://labs.beffa.org/greasemonkey/">Auto-Login</a> user script, this easily saves
me 20-30 minutes every day.</p>

<p>When you change your password on a site, Firefox almost always notices and
changes its saved password too. Unfortunately, Firefox can't be expected to grok
single-sign-on services like <a href="http://www.passport.com/">Passport</a> and most
corporate intranets. If you change your single-sign-on password, you're stuck
with the old saved password for every single-sign-on site you use. You could
delete their saved passwords, but then you'd have to re-enter your new password
for every site. Boo.</p>

<p>When I hit this roadbump recently, I rolled up my sleeves and dove into the
saved passwords file. Depending on the version of Firefox that created your
profile, this will be <code>signons.txt</code>, <code>signons2.txt</code>, or <code>[some_number].s</code> in
your Firefox <a href="http://www.mozilla.org/support/firefox/profile#locate">profile
directory</a>. (Mine is
<code>~/.mozilla/firefox/default.jre/56011215.s</code>.)</p>

<p>The file should something like this:</p>

<div class='p-shadow'><pre><code>#2c
.
http://www.yahoo.com

MDIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcEC...
*
MDoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcEC...
.
http://www.google.com
userid
MDIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcEC...
*pass
MEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcEC...
.
http://www.microsoft.com
email
MEIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcEC...
*password
MDIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcEC...
...
</code></pre></div>

<p><br class='clearing' />For each site, it stores the names of the username and password fields and your
(obfuscated) actual username and password. The obfuscation isn't based solely on
the value, since sites with identical usernames and passwords will have
different obfuscated values. However, from what I can tell, the differences
aren't based on the site's URL, the field names, or anything else that matters.
They're pure <a href="http://en.wikipedia.org/wiki/Salt_(cryptography)">salt</a>. So, you
can replace any stored password with any another, and Firefox will de-obfuscate
the replacement correctly.</p>

<p>This makes changing saved passwords en masse fairly easy. First, log into a site
with your new password, and check that Firefox saved it. Open the saved password
file, copy the stored password for that site, and paste it over the stored
password for each site you want to update. Restart Firefox, and you should
breeze past login pages just like normal!</p>

<p>If you have to do this often, it shouldn't be hard to whip up an awk or perl
script to do it automatically. Even a simple Emacs regexp-replace would probably
do the job.</p>

<p>See also:</p>

<ul>
<li><a href="/space/emacs keybindings in firefox">emacs keybindings in firefox</a></li>
<li><a href="/space/thinkpad keys in firefox">thinkpad keys in firefox</a></li>
<li><a href="/space/stop mozilla plugin prompt">stop mozilla plugin prompt</a></li>
<li><a href="/space/kodak picturecenter hacks">kodak picturecenter hacks</a></li>
<li><a href="/space/view evites anonymously">view evites anonymously</a></li>
</ul>

  </content>

  <rdf:Seq>

<rdf:li>
<rdf:Description rdf:about="#1123196416.0">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords-1 </dc:title>
  <dc:creator> intelliot </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    
Awesome. This is exactly what I was looking for. Now I'll try it out :)

  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1146809279.0">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords-2 </dc:title>
  <dc:creator> Guest </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    
I don't believe this works if you have set the master password as it seems to then use a more complex form of encryption.<p class="paragraph"/>On the other hand&#8230; if you haven't set it, then somebody can just use a base64 decode function on your username and password to decrypt them.<p class="paragraph"/> <i class="italic">- <span class="nobr"><a href="http://www.shellcity.net/phpBB">Gerry</a></span></i>

  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1147067879.0">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords-3 </dc:title>
  <dc:creator> petroleo </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    
Google the best!
<span class="nobr"><a href="http://snarfed.org/">&#104;ttp://snarfed.org/</a></span> more good
www.minhasimagem.pop.com.br my site! :P
Tranks!!

  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1168958421.94">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords </dc:title>
  <dc:creator> Mark L </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    Firefox needs to come out with a way to save the passwords to a file so that everyone can grab them and save them when reformatting their computer.<br />
Sincerely,<br />
Mark<br />

  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1179489785.38">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords </dc:title>
  <dc:creator> skylie </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    This is what I needed. Good job!
  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1195488652.13">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords </dc:title>
  <dc:creator> cwd </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    If you're looking for a way to export all your passwords check out the Password Exporter extension:<br />
<br />
https://addons.mozilla.org/en-US/firefox/addon/2848
  </content>
</rdf:Description>
</rdf:li>

<rdf:li>
<rdf:Description rdf:about="#1213216269.99">
  <dc:source> http://snarfed.org/ </dc:source>
  <dc:title> change firefox's saved passwords </dc:title>
  <dc:creator> Firefox seguro </dc:creator>
  <dc:date> cmt_pubDate </dc:date>
  <dc:format> text/html </dc:format>

  <content>
    Awesome! Thank you for the tip (I never would guessed it)
  </content>
</rdf:Description>
</rdf:li>

  </rdf:Seq>
</rdf:Description>
</rdf:RDF>
