-
Notifications
You must be signed in to change notification settings - Fork 0
/
password-generator.html
71 lines (55 loc) · 2.69 KB
/
password-generator.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<!DOCTYPE html>
<html>
<head>
<title>Open Source Password Generator by Toolzr</title>
</head>
<body>
<h1>Password Generator</h1>
<label for="length">Password length:</label>
<input type="number" id="length" value="16"><br>
<input type="checkbox" id="uppercase" checked>
<label for="uppercase">Include uppercase letters</label><br>
<input type="checkbox" id="lowercase" checked>
<label for="lowercase">Include lowercase letters</label><br>
<input type="checkbox" id="numbers" checked>
<label for="numbers">Include numbers</label><br>
<input type="checkbox" id="symbols" checked>
<label for="symbols">Include special characters</label><br>
<input type="checkbox" id="avoidAmbiguous">
<label for="avoidAmbiguous">Avoid ambiguous characters</label><br>
<button onclick="generate()">Generate Password</button>
<h2>Generated Password:</h2>
<textarea id="password" rows="2" cols="50" readonly></textarea>
<p>This tool is brought to you by <a href="https://toolzr.com" target="_blank">Toolzr</a> and is open source, licensed under the <a href="https://opensource.org/licenses/MIT" target="_blank">MIT License</a>. The online version can be found at <a href="https://toolzr.com/password-generator" target="_blank">toolzr.com/password-generator</a>.</p>
<script>
function generatePassword(length, includeUppercase, includeLowercase, includeNumbers, includeSymbols, avoidAmbiguous) {
const uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const lowercase = 'abcdefghijklmnopqrstuvwxyz';
const numbers = '0123456789';
const symbols = '~`!@#$%^&*()-_=+[]{}|;:,.<>?';
const ambiguous = 'O0lI|/\\`\'"^';
let characters = '';
if (includeUppercase) characters += uppercase;
if (includeLowercase) characters += lowercase;
if (includeNumbers) characters += numbers;
if (includeSymbols) characters += symbols;
if (avoidAmbiguous) characters = characters.split('').filter(char => !ambiguous.includes(char)).join('');
let password = '';
for (let i = 0; i < length; i++) {
password += characters.charAt(Math.floor(Math.random() * characters.length));
}
return password;
}
function generate() {
const length = document.getElementById('length').value;
const includeUppercase = document.getElementById('uppercase').checked;
const includeLowercase = document.getElementById('lowercase').checked;
const includeNumbers = document.getElementById('numbers').checked;
const includeSymbols = document.getElementById('symbols').checked;
const avoidAmbiguous = document.getElementById('avoidAmbiguous').checked;
const password = generatePassword(parseInt(length), includeUppercase, includeLowercase, includeNumbers, includeSymbols, avoidAmbiguous);
document.getElementById('password').value = password;
}
</script>
</body>
</html>