MSIE Port of Password Bookmarklet
Category:
This is my port of the excellent password bookmarklet from Nic Wolff
It uses the Liorean bookmarklet code to implement a simple workaround for the size limit in Microsoft Explorer's URL length.
Installation instructions: Follow these carefully or your bookmarklet will not work.
  1. Save this piece of javascript into a file somewhere on your server as passlet.js:
    function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * 8));} function core_md5(x, len){x[len >> 5] |= 0x80 << ((len) % 32);x[(((len + 64) >>> 9) << 4) + 14] = len;var a = 1732584193;var b = -271733879;var c = -1732584194;var d = 271733878;for(var i = 0; i < x.length; i += 16){var olda = a;var oldb = b;var oldc = c;var oldd = d;a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);c = md5_ff(c, d, a, b, x[i+10], 17, -42063);b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);a = safe_add(a, olda);b = safe_add(b, oldb);c = safe_add(c, oldc);d = safe_add(d, oldd);}return Array(a, b, c, d);} function md5_cmn(q, a, b, x, s, t){return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);} function md5_ff(a, b, c, d, x, s, t){return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);} function md5_gg(a, b, c, d, x, s, t){return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);} function md5_hh(a, b, c, d, x, s, t){return md5_cmn(b ^ c ^ d, a, b, x, s, t);} function md5_ii(a, b, c, d, x, s, t){return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);} function safe_add(x, y){var lsw = (x & 0xFFFF) + (y & 0xFFFF);var msw = (x >> 16) + (y >> 16) + (lsw >> 16);return (msw << 16) | (lsw & 0xFFFF);} function bit_rol(num, cnt){return (num << cnt) | (num >>> (32 - cnt));} function str2binl(str){var bin = Array();var mask = (1 << 8) - 1;for(var i = 0; i < str.length * 8; i += 8)bin[i>>5] |= (str.charCodeAt(i / 8) & mask) << (i%32);return bin;} function binl2hex(binarray){var hex_tab = "0123456789abcdef";var str = "";for(var i = 0; i < binarray.length * 4; i++){str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF);}return str;} function doIt(master){ if (master=='') master=window.prompt('Enter your master password'); if (master != '' && master != null) { re = new RegExp("https*://([^/]+)"); host = document.location.href.match(re)[1]; var i=0,j=0; var p=hex_md5(master+':'+host).substr(0,8); var F=document.forms; for(i=0;i < F.length;i++) { E=F[i].elements; for(j=0;j < E.length;j++) { D=E[j]; if(D.type=='password') { D.value=p; D.focus(); } if(D.type=='text') { if(D.name.toUpperCase().indexOf('PASSWORD')!=-1||D.name.toUpperCase().indexOf('PASSWD')!=-1) { D.value=p;D.focus(); } } } } } }
  2. Drag one of the links(or both) to the 'Links' toolbar in your MSIE, or into favorites:
    • This bookmarklet PASS uses the hardcoded password.
    • This bookmarklet aPASS will ask for password each time.
  3. Edit the URL of the passlet.js in the bookmark
  4. If you're using the hardcoded master password, edit it too.

Link info

More in category 'Internet'



Comments

17.
fgh
by trh on 2013-05-06 05:31:53
16.
It seems that i have to do something other than just clicking =D ..It's ok, I'll download Firefox.
by Azure on 2009-11-04 01:31:21
15.
Thanks 4 the effort! This msg came: "The URI you submitted has disallowed characters: (function(){var_s" when cliicking both links. It didn't work. I'm using IE v7.0.5730
by Azure on 2009-11-04 01:28:18
14.
Do you know if it's possible to get this working in IE8Beta and IE7? Thanks.
by mh on 2008-03-26 17:47:27
13.
Can you help with instructions on step 3 Edit the URL of the passlet.js in the bookmark. Thank you
by Jim on 2007-10-31 20:47:39
12.
nice ;)
by lyazid on 2007-08-05 06:47:07
11.
If you do not know how to create the shortcut manually, do this.

Right Click on the link.
Select copy shortcut.
Right Click on your desktop and select paste.
Edit the properties of the shortcut as described above.
Say Yes to the error about not knowing the application type.
Drag and drop this shortcut into your links on the browser.
You will get a warning that this link may not be safe, say yes.
Walla you have the shortcut.
by Tony Julian on 2006-03-02 12:09:28
10.
thanks
by gay video on 2005-11-26 16:33:44
9.
You might like a Smartphone version of this... http://james.cridland.net/passwords/
by James Cridland on 2005-07-24 16:09:32
8.
Got the code to work but how do I set the password on a site? Entered old password and tried the applet for the new password but it does not work.
Thanks
by David on 2005-05-24 12:45:48