Skip to content

Commit 14da66c

Browse files
authored
Merge pull request #148 from abhinavkulmitra/randomPasswordGenerator-abhinavkulmitra-branch
add-project-randompassword
2 parents 54a0f9b + ac3b927 commit 14da66c

File tree

2 files changed

+131
-0
lines changed

2 files changed

+131
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// selecting each element
2+
var rangeValue = document.querySelector('.form-control-range');
3+
var checkCapitalLetters = document.querySelector('#defaultCheck2');
4+
var checkSymbols = document.querySelector('#defaultCheck3');
5+
var checkNumbers = document.querySelector('#defaultCheck4');
6+
var textDiv = document.querySelector('.showPassword');
7+
8+
9+
10+
//click-event in submit btn
11+
document.querySelector('.submit').addEventListener('click',generatePasswords);
12+
13+
14+
15+
// function to generate password
16+
function generatePasswords() {
17+
18+
textDiv.innerHTML = "Your brand-new password: ";
19+
20+
var passwordArr = [];
21+
var smletter = 'abcdefghijklmnpqrstuvwxyz';
22+
var capletter = 'ABCDEFGHIJKLMNPQRSTUVWXYZ';
23+
var sym = '!@#$%^&*()';
24+
var num = '0123456789';
25+
var sumOfall = smletter + capletter + sym + num;
26+
27+
28+
// getting a random set for the password array
29+
for(i=0; i<= rangeValue.value/4; i++)
30+
{
31+
32+
passwordArr.push(smletter.charAt(Math.floor((Math.random() * 26) + 1)));
33+
34+
if(checkCapitalLetters.checked)
35+
{
36+
passwordArr.push(capletter.charAt(Math.floor((Math.random() * 26) + 1)));
37+
};
38+
39+
if(checkNumbers.checked) {
40+
passwordArr.push(num.charAt(Math.floor((Math.random() * 10) + 1)));
41+
}
42+
43+
if(checkSymbols.checked) {
44+
passwordArr.push(sym.charAt(Math.floor((Math.random() *10) + 1)));
45+
}
46+
};
47+
48+
49+
// getting the leftover elements
50+
if(passwordArr.length !== rangeValue.value) {
51+
for(i=0; i<(rangeValue.value-passwordArr.length); i++) {
52+
53+
passwordArr.push(sumOfall.charAt(Math.floor((Math.random() * 26) + 1)));
54+
55+
}
56+
57+
}
58+
59+
60+
// to shuffle the array's element - Fisher-Yates algorithm.
61+
for(i=passwordArr.length - 1; i>0; i--){
62+
63+
var j = Math.floor(Math.random() * i);
64+
65+
var temp = passwordArr[i];
66+
67+
passwordArr[i] = passwordArr[j];
68+
69+
passwordArr[j] = temp;
70+
71+
};
72+
73+
passwordArr.forEach(cur => textDiv.innerHTML += cur);
74+
75+
};
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<html>
2+
<head>
3+
<title>Random Password Generator</title>
4+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
5+
</head>
6+
<body>
7+
<div class="container">
8+
9+
<form>
10+
<div class="form-group">
11+
<label for="formControlRange">Password Length
12+
</label>
13+
<input type="range" min='6' max= "32" class="form-control-range" id="formControlRange">
14+
</div>
15+
<div class="form-check">
16+
<input class="form-check-input :checked" type="checkbox" value="" id="defaultCheck2" checked disabled>
17+
<label class="form-check-label" for="defaultCheck2">
18+
Small letters
19+
</label>
20+
</div>
21+
<div class="form-check">
22+
<input class="form-check-input" type="checkbox" value="capital-letters" id="defaultCheck2">
23+
<label class="form-check-label" for="defaultCheck1">
24+
Capital letters
25+
</label>
26+
</div>
27+
<div class="form-check">
28+
<input class="form-check-input" type="checkbox" value="symbols" id="defaultCheck3">
29+
<label class="form-check-label" for="defaultCheck1">
30+
Symbols
31+
</label>
32+
</div>
33+
<div class="form-check">
34+
<input class="form-check-input" type="checkbox" value="Numbers" id="defaultCheck4">
35+
<label class="form-check-label" for="defaultCheck1">
36+
Numbers
37+
</label>
38+
</div>
39+
</form>
40+
41+
<button type="submit" class="btn btn-primary submit">Submit</button>
42+
43+
</div>
44+
45+
<div class="container showPassword">
46+
47+
</div>
48+
</div>
49+
</body>
50+
51+
<script src="app.js"></script>
52+
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
53+
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
54+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script>
55+
56+
</html>

0 commit comments

Comments
 (0)