Files
passyweb/passy-tiny.html
T

72 lines
3.8 KiB
HTML

<html>
<head>
<script type='text/javascript'>
var u=function(){function t(c){var b=[];do{b.unshift(c&255);c>>=8}while(c);return b}function s(c){var b=[],a,d=c.length;for(a=0;a<d;a++)b=b.concat(t(c.charCodeAt(a)));return b}function p(c){c=c.slice();var b=c.length*8,a=1732584193,d=4023233417,g=2562383102,h=271733878,i=3285377520,e,j,f,k,o,l,r,m,n;for(c.push(128);(c.length+8)%64;)c.push(0);c=c.concat([(b&1.8374686479671624E19)>>>56,(b&71776119061217280)>>>48,(b&280375465082880)>>>40,(b&1095216660480)>>>32,(b&4278190080)>>>24,(b&16711680)>>>16,(b&
65280)>>>8,b&255]);for(b=0;b<c.length/64;b++){e=c.slice(b*64,b*64+64);j=[];f=void 0;k=e.length;for(f=0;f<k;f+=4)j.push(e[f]<<24|e[f+1]<<16|e[f+2]<<8|e[f+3]);m=j;e=a;j=d;f=g;k=h;o=i;for(n=0;n<80;n++){l=n&15;if(n>=16){r=m[l+13&15]^m[l+8&15]^m[l+2&15]^m[l];m[l]=r<<1|r>>>31}r=n<20?(e<<5|e>>>27)+(k^j&(f^k))+o+1518500249+m[l]&4294967295:n<40?(e<<5|e>>>27)+(j^f^k)+o+1859775393+m[l]&4294967295:n<60?(e<<5|e>>>27)+(j&f|j&k|f&k)+o+2400959708+m[l]&4294967295:(e<<5|e>>>27)+(j^f^k)+o+3395469782+m[l]&4294967295;
o=k;k=f;f=j<<30|j>>>2;j=e;e=r}a=a+e&4294967295;d=d+j&4294967295;g=g+f&4294967295;h=h+k&4294967295;i=i+o&4294967295}return[a>>>24&255,a>>>16&255,a>>>8&255,a&255,d>>>24&255,d>>>16&255,d>>>8&255,d&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255,h>>>24&255,h>>>16&255,h>>>8&255,h&255,i>>>24&255,i>>>16&255,i>>>8&255,i&255]}var q=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];return{g:function(c,b){var a=s(c),d=s(b),g=Array(64),h=Array(64),i;if(a.length>64)a=p(a);for(;a.length<64;)a.push(0);
for(i=0;i<64;i++){g[i]=92^a[i];h[i]=54^a[i]}a=p(g.concat(p(h.concat(d))));d="";g=a.length;for(h=0;h<g;h++)d+=q[a[h]>>>4]+q[a[h]&15];return d}}}();
window.passy=function(t,s){var p=u.g(s,t).toLowerCase();return[function(q){var c=["A","B","C","D","E","F","G","H","a","b","c","d","e","f","g","h","2","3","4","5","6","7","8","9","#","$","%","*","+","=","@","?"],b={"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,a:10,b:11,c:12,d:13,e:14,f:15},a="",d,g;for(d=0;d<q.length/2;++d){g=b[q[d*2]]*16+b[q[d*2+1]];a+=c[g%c.length]}return a}(p.slice(0,24)),p.slice(0,10)]};
</script>
<script type='text/javascript'>
var password_timer=0;
function delayed_select(target)
{
// hack to wait for onmouseup event to pass
setTimeout(function(){target.select()},5); // 5ms
}
function clear_password()
{
// clear password field and set focus so we're ready to receive password again
document.getElementById('password').value = "";
document.getElementById('password').focus();
// force an update to clear the generated password (result) field as well
update_passy();
}
function update_passy()
{
// do password update
var site = document.getElementById('site').value;
var password = document.getElementById('password').value;
if ( site == "" || password == "" )
{
document.getElementById('result').value = "";
document.getElementById('result_old').value = "";
}
else
{
document.getElementById('result').value = passy(site,password)[0];
document.getElementById('result_old').value = passy(site,password)[1];
}
// set timer to clear password field after a minute
if ( password_timer != 0 )
{
clearTimeout(password_timer);
}
password_timer = setTimeout('clear_password()',60000);
}
</script>
</head>
<body>
<form>
Site Name:<br/>
<input type='text' id='site' onkeyup='update_passy()'><br/>
Secret Passphrase:<br/>
<input type='password' id='password' onkeyup='update_passy()'><br/>
<hr/>
Site Password:<br/>
<input type='text' id='result' readonly onfocus='delayed_select(this)'>
<br/>
Site Password (old variation):<br/>
<input type='text' id='result_old' readonly onfocus='delayed_select(this)'>
</form>
</body>
</html>