From ac3b92781a584e3e8db11006b4b8dab9f45258f2 Mon Sep 17 00:00:00 2001 From: abhinavkulmitra Date: Fri, 30 Oct 2020 20:47:10 +0530 Subject: [PATCH] add-project-randompassword Added a project on random password generator using Fisher-Yates algorithm. @thinkswell kindly approve --- randomPassword/abhinavkulmitra/app.js | 75 +++++++++++++++++++++++ randomPassword/abhinavkulmitra/index.html | 56 +++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 randomPassword/abhinavkulmitra/app.js create mode 100644 randomPassword/abhinavkulmitra/index.html diff --git a/randomPassword/abhinavkulmitra/app.js b/randomPassword/abhinavkulmitra/app.js new file mode 100644 index 000000000..1d2f05a6b --- /dev/null +++ b/randomPassword/abhinavkulmitra/app.js @@ -0,0 +1,75 @@ +// selecting each element +var rangeValue = document.querySelector('.form-control-range'); +var checkCapitalLetters = document.querySelector('#defaultCheck2'); +var checkSymbols = document.querySelector('#defaultCheck3'); +var checkNumbers = document.querySelector('#defaultCheck4'); +var textDiv = document.querySelector('.showPassword'); + + + +//click-event in submit btn +document.querySelector('.submit').addEventListener('click',generatePasswords); + + + +// function to generate password +function generatePasswords() { + + textDiv.innerHTML = "Your brand-new password: "; + + var passwordArr = []; + var smletter = 'abcdefghijklmnpqrstuvwxyz'; + var capletter = 'ABCDEFGHIJKLMNPQRSTUVWXYZ'; + var sym = '!@#$%^&*()'; + var num = '0123456789'; + var sumOfall = smletter + capletter + sym + num; + + + // getting a random set for the password array + for(i=0; i<= rangeValue.value/4; i++) + { + + passwordArr.push(smletter.charAt(Math.floor((Math.random() * 26) + 1))); + + if(checkCapitalLetters.checked) + { + passwordArr.push(capletter.charAt(Math.floor((Math.random() * 26) + 1))); + }; + + if(checkNumbers.checked) { + passwordArr.push(num.charAt(Math.floor((Math.random() * 10) + 1))); + } + + if(checkSymbols.checked) { + passwordArr.push(sym.charAt(Math.floor((Math.random() *10) + 1))); + } + }; + + + // getting the leftover elements + if(passwordArr.length !== rangeValue.value) { + for(i=0; i<(rangeValue.value-passwordArr.length); i++) { + + passwordArr.push(sumOfall.charAt(Math.floor((Math.random() * 26) + 1))); + + } + + } + + + // to shuffle the array's element - Fisher-Yates algorithm. + for(i=passwordArr.length - 1; i>0; i--){ + + var j = Math.floor(Math.random() * i); + + var temp = passwordArr[i]; + + passwordArr[i] = passwordArr[j]; + + passwordArr[j] = temp; + + }; + + passwordArr.forEach(cur => textDiv.innerHTML += cur); + +}; \ No newline at end of file diff --git a/randomPassword/abhinavkulmitra/index.html b/randomPassword/abhinavkulmitra/index.html new file mode 100644 index 000000000..3a7e99f93 --- /dev/null +++ b/randomPassword/abhinavkulmitra/index.html @@ -0,0 +1,56 @@ + + + Random Password Generator + + + +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+ +
+ +
+ + + + + + + + + \ No newline at end of file