I have a function as below, which creates a strong password, however it does not always add a special character and a number or a capital letter to it, how do i ensure that it always has these requirements included in it.
The password requirements are that it has to
8 or more characters long and has to have a special character,a capital letter and a number included to it.
the function i have right now is displayed below
function GenPwd(nMinimumLength,bIsRequired,sNameoftheButton){
var end=0;
var index=0;
var sPassCharactersWithoutSpeacil="!#$@*123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
var sSpecialCharacters="!#$@*";
var nSrngLen=sStrgStrAddOnChrs
var sNumbers="123456789";
var nMinimunLen=Math.round(nBaseLen/2);
var PassWordDLength=Math.round((Math.random()*nMinLen)+nMinimumLength+nMinimumLength); //Make sure it is atleadt 8 characters long
var Password="";
var PasswordTemporary="";
for(index = 1; index <= PassWordDLength; index++) {
nCharacter = Math.round(Math.random()*65);
PasswordTemporary = sPassCharactersWithoutSpeacil.charAt(nCharacter);
while (PWD.indexOf(PasswordTemporary) > -1) {
nCharacter = '';
nCharacter = Math.round(Math.random()*65);
PasswordTemporary = sPassCharactersWithoutSpeacil.charAt(nChar);
}
FinalPWD = Password + PasswordTemporary;
}
this is what i have to use
function GenPwd(nBaseLen,bIsStrong,sBtnName){
var end=0;
var index=0;
var sPassStr="!#$@*123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
var sStrgStrAddOnChrs="!#$@*";
var nSrngLen=sStrgStrAddOnChrs
var sStrgStrAddOnNum="123456789";
var nMinLen=Math.round(nBaseLen/2);
var PWDLen=Math.round((Math.random()*nMinLen)+nBaseLen);
var PWD="";
var PWDTmp="";
//Generate the password
for(index = 1; index <= PWDLen; index++) {
nChar = Math.round(Math.random()*65);
PWDTmp = sPassStr.charAt(nChar);
while (PWD.indexOf(PWDTmp) > -1) {
nChar = '';
nChar = Math.round(Math.random()*65);
PWDTmp = sPassStr.charAt(nChar);
}
PWD = PWD + PWDTmp;
}
document.getElementById("pwd").value=PWD;
EnableBtn(sBtnName);
return true;
}