Andrés Forero@sigh
Los argumentos spec (caracteres especiales), upp (mayusculas) y num (numeros) estan desactivados por defecto (0), cuando se llama la funcion con otro valor se agregan al string.
Sobre el buffer: El abecedario tiene 26 caracteres, la letra 'a' tiene el codigo ascii 97, por lo que hago un bucle que empiece en 0 y termine en 26 y en cada posicion del string le sumo i+97 (donde empieza 'a')
97+0 -> 97 (a)
97+1 -> 98 (b)
99+1 -> 100 (d)
Y por ultimo utilizo el metodo toString('ascii') para que sean caracteres.
1const gen_password = (size=8, spec=0, upp=0, num=0) => { 2 const alph = Buffer.alloc(26); 3 for(let i=0; i<26; i++){ 4 alph[i] = i+97; 5 } 6 let char = alph.toString('ascii'); 7 8 if(!upp == 0) char+= char.toUpperCase(); 9 if(!spec == 0) char+= `!@#$%^&*()-_=+`; 10 if(!num == 0) char+= '1234567890'; 11 12 let password = ''; 13 for(let i=0; i<size; i++) { 14 password+= char[Math.trunc(Math.random()*char.length)]; 15 } 16 return password; 17} 18 19console.log(gen_password(12, 1, 1, 1));
Escribe una respuesta