On-line

From PasswordMaker

Revision as of 18:13, 30 August 2007 by Tanstaafl (Talk | contribs)
Jump to: navigation, search

<script type="text/javascript" src="scripts/aes.js"></script> <script type="text/javascript" src="scripts/passwordmaker.js"></script> <script type="text/javascript" src="scripts/md4.js"></script> <script type="text/javascript" src="scripts/md5.js"></script> <script type="text/javascript" src="scripts/md5_v6.js"></script> <script type="text/javascript" src="scripts/sha256.js"></script> <script type="text/javascript" src="scripts/sha1.js"></script> <script type="text/javascript" src="scripts/ripemd160.js"></script> <script type="text/javascript" src="scripts/l33t.js"></script>

<script type="text/javascript" src="scripts/cookie.js"></script> <script type="text/javascript" src="scripts/hashutils.js"></script> <script type="text/javascript" src="scripts/select.js"></script> <script type="text/javascript" src="scripts/bodyShow.js"></script> <script type="text/javascript"> var otherOnLoadHandler=window.onload; onload=init; </script>

<style type="text/css"> select.editable, input.editable {

   width : 15em;

}

option.activateEdit {

   font-style : italic;
   color : #800;

} </style>

Downloadable Version

You can <a href="http://passwordmaker.org/downloads/javascript.html">download</a> this page and its dependencies as a zip archive and run it from your local hard drive. Simply expand the zip archive and open passwordmaker.html in a browser.

Online Version
Profile <select id="profileLB" name="profile" class="editable" onchange="loadProfile();"><option value="!!!edit!!!" class="activateEdit">New Profile</option></select>

<script type="text/javascript"> /* profileLB = new Bs_Dropdown(); profileLB.imgDir = 'scripts/blueShoes/components/dropdown/img/win2k/'; profileLB.setValue('Default'); profileLB.drawInto('profileLB'); profileLB.attachEvent('onChange', loadProfile); */

if(getCookie("profileList")!=null) { // load the various profiles var a = unescape(getCookie("profileList")); var profileListArray = a.split("|");

for (var i=0; i<profileListArray.length; i++) { var option = document.createElement("option"); option.text = unescape(profileListArray[i]); EditableSelect.selectAddOption(document.getElementById("profileLB"), option);

if(i==0) option.selected="selected"; } } else { profileListArray = new Array("Default");

var option = document.createElement("option"); option.text = "Default"; EditableSelect.selectAddOption(document.getElementById("profileLB"), option); option.selected="selected"; } </script>

Input Url <input class="standard" type="edit" id="preURL" onchange="populateURL();" onkeyup="populateURL();" onkeydown="populateURL();" onkeypress="populateURL();" oninput="populateURL();"/>
Master password <input class="standard" type="password" id="passwdMaster" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"/>
<input type="button" value="Save master password" id="saveMasterBtn" onclick="saveMaster();" />
Use l33t <select class="dropmenu" id="whereLeetLB" onchange="onWhereLeetLBChanged();preGeneratePassword();">

<option value="off">not at all</option> <option value="before-hashing">before generating password</option> <option value="after-hashing">after generating password</option>

<option value="both">before and after generating password</option> </select>

l33t Level <select class="dropmenu" id="leetLevelLB" onchange="preGeneratePassword();">

<option value="0">1</option> <option value="1">2</option> <option value="2">3</option> <option value="3">4</option> <option value="4">5</option>

<option value="5">6</option> <option value="6">7</option> <option value="7">8</option> <option value="8">9</option> </select>

Hash Algorithm

<select class="dropmenu" id="hashAlgorithmLB" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"> <option value="md4">MD4</option>

<option value="hmac-md4">HMAC-MD4</option> <option value="md5">MD5</option> <option value="md5_v6">MD5 Version 0.6</option> <option value="hmac-md5">HMAC-MD5</option> <option value="hmac-md5_v6">HMAC-MD5 Version 0.6</option> <option value="sha1">SHA-1</option> <option value="hmac-sha1">HMAC-SHA-1</option> <option value="sha256">SHA-256</option> <option value="hmac-sha256_fix">HMAC-SHA-256</option>

<option value="hmac-sha256">HMAC-SHA-256 Version 1.5.1</option> <option value="rmd160">RIPEMD-160</option> <option value="hmac-rmd160">HMAC-RIPEMD-160</option> </select>

URL Components

<input type="checkbox" id="protocolCB" onclick="populateURL();" />Protocol
<input type="checkbox" id="subdomainCB" onclick="populateURL();" />Subdomain(s)
<input type="checkbox" id="domainCB" onclick="populateURL();" status="checked" />Domain

<input type="checkbox" id="pathCB" onclick="populateURL();" />Port, path, anchor, query parameters

URL <input class="standard" type="edit" id="passwdUrl" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"/>
Length of Generated Password <input class="standard" id="passwdLength"

maxlength="3" size="3" value="12"

onchange="if (/\D/.test(this.value)) this.value='8';preGeneratePassword();" onkeyup="if (/\D/.test(this.value)) this.value='8';preGeneratePassword();" onkeydown="if (/\D/.test(this.value)) this.value='8';preGeneratePassword();" onkeypress="if (/\D/.test(this.value)) this.value='8';preGeneratePassword();" oninput="if (/\D/.test(this.value)) this.value='8';preGeneratePassword();"/>
Username <input class="standard" id="usernameTB" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"/>
Modifier <input class="standard" id="counter" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"/>
Characters <select id="charset" name="charset" class="editable" onchange="preGeneratePassword();">

<option value="!!!edit!!!" class="activateEdit">Edit Character Set</option> <option selected="selected">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`[email protected]#$%^&*()_-+={}|[]\:";'<>?,./</option> <option>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</option>

<option>0123456789abcdef</option> <option>0123456789</option> <option>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz</option> <option>`[email protected]#$%^&*()_-+={}|[]\:";'<>?,./</option> </select>

 <script type="text/javascript">

/* charset = new Bs_Dropdown(); charset.imgDir = 'scripts/blueShoes/components/dropdown/img/win2k/';

 charset.setValue("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`[email protected]#$%^&*()_-+={}|[]\:";'<>?,./");
 charset.addOption("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
 charset.addOption("0123456789abcdef");
 charset.addOption("0123456789");
 charset.addOption("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
 charset.addOption("`[email protected]#$%^&*()_-+={}|[]\:";'<>?,./");
 charset.drawInto('charset');
 charset.attachEvent('onChange', preGeneratePassword);
  • /
 </script>
<input type="button" class="button" value="Tips" onclick="onClickTips();"/>
Password Prefix <input class="standard" id="passwordPrefix" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"/>
Password Suffix <input class="standard" id="passwordSuffix" onchange="preGeneratePassword();" onkeyup="preGeneratePassword();" onkeydown="preGeneratePassword();" onkeypress="preGeneratePassword();" oninput="preGeneratePassword();"/>
Generated Password <input class="standard" type="edit" id="passwdGenerated" style="color: #0000ff; font-weight: bold"/>
<input type="checkbox" id="ifHidePasswd" onchange="if(ifHidePasswd.checked==true){ passwdGenerated.style.color='#ffffff'; } else { passwdGenerated.style.color='#0000ff'; } saveGlobalPrefs();" />Make password invisible (Highlight to view)
                 <input type="button" value="Save Profile" onclick="saveProfile();" /> <input type="button" value="Cancel Changes" onclick="loadProfile();" /> <input type="button" value="Delete Profile" onclick="deleteProfile();" />
Compatibile Browsers
  • Internet Explorer 5.0, 5.5, 6.0
  • Safari 1.3, 2.0
  • Firefox 1.0.x, 1.5 beta
  • Mozilla 1.7.5
  • Opera 7.54u2
  • Netscape 7.2, 8.0
  • Konqueror 3.3 (without cookie support)
  • Maxthon Browser 1.3.1
  • Flock 0.5

We haven't found any modern browser with which this page doesn't work. If you've tried this page with another browser or browser version, please <a href="contact.php">let us know!</a>

Is this page secure?

This page uses only javascript and html to generate passwords. There is no form submission -- purposefully -- so there is no way for the server to see or store your passwords (including the master). It would be a security risk to send passwords over an HTTP (not HTTPS) connection, and also to store them whatsoever (even encrypted) on a server; not to mention a violation of your privacy.


All settings except the master password are stored on your local PC as a cookie, so the settings will be the same next time you visit this page. If you'd like to store the master password also, check the Save master password checkbox. The master password will then be stored encrypted as an cookie on your local machine. Saving the master password, even though it's encrypted with AES encryption, is not completely secure; you are sacrificing some security for convenience. Theoretically, a hacker could determine your master password if he:

  • Could access the encrypted master password and key, stored as cookies, on your PC
  • Knew to use AES-256 to decrypt the master password


Even then, a hacker wouldn't be able to use the master password to login anywhere if you only use generated passwords for your passwords. Moreover, a succesful login to any system also requires a username.


In any case, if this security risk concerns you, you shouldn't check the "Save master password" checkbox. If you've checked it by mistake, simply clear your cookies or, alternatively, uncheck the Save master password box and navigate away from this page. This forces an empty value to be stored for the master password.

Personal tools