diff options
Diffstat (limited to 'httemplate/elements/random_pass.html')
-rw-r--r-- | httemplate/elements/random_pass.html | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/httemplate/elements/random_pass.html b/httemplate/elements/random_pass.html index b215b77d9..14bbb581d 100644 --- a/httemplate/elements/random_pass.html +++ b/httemplate/elements/random_pass.html @@ -1,13 +1,23 @@ <INPUT TYPE="button" VALUE="<% emt($label) %>" onclick="randomPass()"> <SCRIPT TYPE="text/javascript"> function randomPass() { + var lower='<% join('', 'a'..'z') %>'; + var upper='<% join('', 'A'..'Z') %>'; + var number='<% join('', '0'..'9') %>'; + var symbol='`~!@#$%^&*-_=+:;<>,.?'; + var pw_set=lower+upper+number+symbol; + var pass=[]; + pass.push(lower.charAt(Math.floor(Math.random() * lower.length))); + pass.push(upper.charAt(Math.floor(Math.random() * lower.length))); + pass.push(number.charAt(Math.floor(Math.random() * number.length))); + pass.push(symbol.charAt(Math.floor(Math.random() * symbol.length))); var i=0; - var pw_set='<% join('', 'a'..'z', 'A'..'Z', '0'..'9' ) %>'; - var pass=''; - while(i < 8) { + while(i < 4) { i++; - pass += pw_set.charAt(Math.floor(Math.random() * pw_set.length)); + pass.push(pw_set.charAt(Math.floor(Math.random() * pw_set.length))); } + for(var j, x, i = pass.length; i; j = Math.floor(Math.random() * i), x = pass[--i], pass[i] = pass[j], pass[j] = x); + pass = pass.join(''); document.getElementById('<% $id %>').value = pass; } </SCRIPT> |