Skip to content

Instantly share code, notes, and snippets.

@tansengming
Created August 3, 2012 11:10
Show Gist options
  • Select an option

  • Save tansengming/3246707 to your computer and use it in GitHub Desktop.

Select an option

Save tansengming/3246707 to your computer and use it in GitHub Desktop.
passgen
javascript:(function(){function%20hex_md5(p){return%20binl2hex(core_md5(str2binl(p),p.length*8));}function%20core_md5(x,len){x[len>>5]|=0x80<<((len)%2532);x[(((len+64)>>>9)<<4)+14]=len;var%20a=1732584193;var%20b=-271733879;var%20c=-1732584194;var%20d=271733878;for(var%20i=0;i<x.length;i+=16){var%20olda=a;var%20oldb=b;var%20oldc=c;var%20oldd=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%20Array(a,b,c,d);}function%20md5_cmn(q,a,b,x,s,t){return%20safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}function%20md5_ff(a,b,c,d,x,s,t){return%20md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}function%20md5_gg(a,b,c,d,x,s,t){return%20md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}function%20md5_hh(a,b,c,d,x,s,t){return%20md5_cmn(b^c^d,a,b,x,s,t);}function%20md5_ii(a,b,c,d,x,s,t){return%20md5_cmn(c^(b|(~d)),a,b,x,s,t);}function%20safe_add(x,y){var%20lsw=(x&0xFFFF)+(y&0xFFFF);var%20msw=(x>>16)+(y>>16)+(lsw>>16);return%20(msw<<16)|(lsw&0xFFFF);}function%20bit_rol(num,cnt){return%20(num<<cnt)|(num>>>(32-cnt));}function%20str2binl(str){var%20bin=Array();var%20mask=(1<<8)-1;for(var%20i=0;i<str.length*8;i+=8)bin[i>>5]|=(str.charCodeAt(i/8)&mask)<<(i%2532);return%20bin;}function%20binl2hex(binarray){var%20hex_tab='0123456789abcdefABCDEF';var%20str='';var%20j=0;for(var%20i=0;i<binarray.length*4;i++){x1=(binarray[i>>2]>>((i%254)*8+4))&0xF;x2=(binarray[i>>2]>>((i%254)*8))&0xF;if(x1>9){j++;if(j%2)x1=x1+6;}if(x2>9){j++;if(j%2)x2=x2+6;}str+=hex_tab.charAt(x1)+hex_tab.charAt(x2);}return%20str;}function%20genpass(pcapture,p,dpresent,plen,pcase,ppop){if(pcapture){var%20i=0,j=0,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'){if(D.value){p=D.value;alert('Using%20password%20found%20on%20page');break;}}}}}re=new%20RegExp(%22https*%3A//(%5B%5E/%3A%5D+)%22);host=document.location.href.match(re)[1];host=host.split('.');if(host[2]!=null){s=host[host.length-2]+'.'+host[host.length-1];domains='ab.ca|ac.ac|ac.at|ac.be|ac.cn|ac.il|ac.in|ac.jp|ac.kr|ac.nz|ac.th|ac.uk|ac.za|adm.br|adv.br|agro.pl|ah.cn|aid.pl|alt.za|am.br|arq.br|art.br|arts.ro|asn.au|asso.fr|asso.mc|atm.pl|auto.pl|bbs.tr|bc.ca|bio.br|biz.pl|bj.cn|br.com|cn.com|cng.br|cnt.br|co.ac|co.at|co.il|co.in|co.jp|co.kr|co.nz|co.th|co.uk|co.za|com.au|com.br|com.cn|com.ec|com.fr|com.hk|com.mm|com.mx|com.pl|com.ro|com.ru|com.sg|com.tr|com.tw|cq.cn|cri.nz|de.com|ecn.br|edu.au|edu.cn|edu.hk|edu.mm|edu.mx|edu.pl|edu.tr|edu.za|eng.br|ernet.in|esp.br|etc.br|eti.br|eu.com|eu.lv|fin.ec|firm.ro|fm.br|fot.br|fst.br|g12.br|gb.com|gb.net|gd.cn|gen.nz|gmina.pl|go.jp|go.kr|go.th|gob.mx|gov.br|gov.cn|gov.ec|gov.il|gov.in|gov.mm|gov.mx|gov.sg|gov.tr|gov.za|govt.nz|gs.cn|gsm.pl|gv.ac|gv.at|gx.cn|gz.cn|hb.cn|he.cn|hi.cn|hk.cn|hl.cn|hn.cn|hu.com|idv.tw|ind.br|inf.br|info.pl|info.ro|iwi.nz|jl.cn|jor.br|jpn.com|js.cn|k12.il|k12.tr|lel.br|ln.cn|ltd.uk|mail.pl|maori.nz|mb.ca|me.uk|med.br|med.ec|media.pl|mi.th|miasta.pl|mil.br|mil.ec|mil.nz|mil.pl|mil.tr|mil.za|mo.cn|muni.il|nb.ca|ne.jp|ne.kr|net.au|net.br|net.cn|net.ec|net.hk|net.il|net.in|net.mm|net.mx|net.nz|net.pl|net.ru|net.sg|net.th|net.tr|net.tw|net.za|nf.ca|ngo.za|nm.cn|nm.kr|no.com|nom.br|nom.pl|nom.ro|nom.za|ns.ca|nt.ca|nt.ro|ntr.br|nx.cn|odo.br|on.ca|or.ac|or.at|or.jp|or.kr|or.th|org.au|org.br|org.cn|org.ec|org.hk|org.il|org.mm|org.mx|org.nz|org.pl|org.ro|org.ru|org.sg|org.tr|org.tw|org.uk|org.za|pc.pl|pe.ca|plc.uk|ppg.br|presse.fr|priv.pl|pro.br|psc.br|psi.br|qc.ca|qc.com|qh.cn|re.kr|realestate.pl|rec.br|rec.ro|rel.pl|res.in|ru.com|sa.com|sc.cn|school.nz|school.za|se.com|se.net|sh.cn|shop.pl|sk.ca|sklep.pl|slg.br|sn.cn|sos.pl|store.ro|targi.pl|tj.cn|tm.fr|tm.mc|tm.pl|tm.ro|tm.za|tmp.br|tourism.pl|travel.pl|tur.br|turystyka.pl|tv.br|tw.cn|uk.co|uk.com|uk.net|us.com|uy.com|vet.br|web.za|web.com|www.ro|xj.cn|xz.cn|yk.ca|yn.cn|za.com';domains=domains.split('|');for(var%20i=0;i<domains.length;i++){if(s==domains[i]){s=host[host.length-3]+'.'+s;break;}}}else{s=host.join('.');}i=(dpresent)?'Master%20password%3A'%3A'Master%20password%20for%20%22'+s+'%22%3A';p=(!p)?prompt(i,'')%3Aunescape(p);if(p){if(dpresent)s=prompt('Using%20domain%3A',s).replace(/%5E%5Cs*|%5Cs*$/g,'');if(s){if(!plen){plen='8';plen=prompt('Generated%20password%20length%3A',plen).replace(/%5E%5Cs*|%5Cs*$/g,'');if(plen.search(/%5E%5Cd+$/)||plen<1||plen>32){if(plen>32){plen=32;alert('Password%20length%20cannot%20exceed%20'+plen+';%20using%20maximum%20value%20of%20'+plen+'.');}else{plen=8;alert('Password%20length%20supplied%20is%20not%20a%20valid%20integer;%20using%20default%20of%20'+plen+'.');}}}p=hex_md5(p+'%3A'+s).substr(0,plen);if(!pcase)p=p.toLowerCase();if(pcase==1)p=p.toUpperCase();var%20not_found=true;s='Generated%20password%3A';if(!ppop){var%20i=0,j=0,F=document.forms;s='No%20obvious%20password%20field%20detected;%20the%20generated%20password%20is%3A';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();not_found=false;}}}}if(not_found)prompt(s,p);}else{alert('Domain%20empty;%20cannot%20proceed.');}}else{alert('Password%20empty;%20cannot%20proceed.');}}genpass(0,0,0,8,0,0);void(null);})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment