67 lines
2.2 KiB
HTML
67 lines
2.2 KiB
HTML
<html>
|
|
<head>
|
|
<title>passgen</title>
|
|
<meta name="description" content="OSS passgen on js">
|
|
<meta name="author" content="nexeq">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta charset="UTF-8">
|
|
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
|
|
<link rel="stylesheet" href="https://tilde.team/~ben/fonts/inconsolata/font.css">
|
|
<script type="text/javascript">
|
|
with (document) {
|
|
writeln('<form name="form_pass" style="width: 300px; padding: 3px; margin: 0 auto;' +
|
|
'border: 2px solid #3366aa; text-align: center;">settings:<br>' +
|
|
'<input name="upper" type="checkbox">capital letters<br>' +
|
|
'<input name="lower" type="checkbox">lowercase letters<br>' +
|
|
'<input name="symbol" type="checkbox">symbols<br>' +
|
|
'<input name="digit" type="checkbox">numbers<br><br>password length: ' +
|
|
'<select name="numbers"><option value="6" selected>6</option>');
|
|
for (i=7; i<=20; i++) writeln('<option value=' + i + '>' + i + '</option>');
|
|
writeln('</select><br><br>');
|
|
writeln('<input type="button" value="generate" onClick="gen()"><br><br>' +
|
|
'password: <input name="result" size="25" type="text" value=""></form>');
|
|
}
|
|
|
|
var upp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
var low = 'abcdefghijklmnopqrstuvwxyz';
|
|
var sym = '!@#№;%:&*()-_+=';
|
|
var dig = '0123456789';
|
|
|
|
function rnd(x,y) {
|
|
var num;
|
|
do {
|
|
num = parseInt(Math.random()*100);
|
|
if (num >= x && num <= y) break;
|
|
} while (true);
|
|
return(num);
|
|
}
|
|
|
|
function gen_pass() {
|
|
var znak = '';
|
|
var pass = '';
|
|
|
|
if (form_pass.upper.checked) znak = upp;
|
|
if (form_pass.lower.checked) znak = znak + low;
|
|
if (form_pass.symbol.checked) znak = znak + sym;
|
|
if (form_pass.digit.checked) znak = znak + dig;
|
|
|
|
var n = document.form_pass.numbers.value;
|
|
for (var i = 0; i < n; i++) pass = pass + znak[rnd(0,znak.length-1)];
|
|
|
|
document.form_pass.result.value = pass;
|
|
}
|
|
|
|
function gen() {
|
|
if (form_pass.upper.checked||form_pass.lower.checked||
|
|
form_pass.symbol.checked||form_pass.digit.checked) gen_pass();
|
|
else { alert('choose cymbols type'); form_pass.upper.checked = true; }
|
|
}
|
|
</script>
|
|
</head>
|
|
<br>
|
|
<hr>
|
|
<br>
|
|
<p align="center"><a href="https://tildegit.org/nexeq/passgen">page source</p>
|
|
<br>
|
|
</html>
|