UNPKG

generador-de-contrasenas

Version:

Generador de codigos mediante opciones de inclusión [Longitud, Mayúsculas, Minúsculas, Números y Símbolos]

47 lines (32 loc) 1.73 kB
const c_mayusculas: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; const c_munisculas: string = 'abcdefghijklmnopqrstuvwxyz'; const c_numeros: string = '0123456789'; const c_caracteres: string = '!@#$%^&*()_+~`|}{[]:;?><,./-='; /** * Genera una contraseña aleatoria con las opciones especificadas. * @param {number} longitud - La longitud deseada de la contraseña. * @param {boolean} mayusculas - Indica si se deben incluir letras mayúsculas en la contraseña. * @param {boolean} minusculas - Indica si se deben incluir letras minúsculas en la contraseña. * @param {boolean} numeros - Indica si se deben incluir números en la contraseña. * @param {boolean} caracteres - Indica si se deben incluir caracteres especiales en la contraseña. * @returns {string} La contraseña generada. */ export function genCode(longitud: number, mayusculas: boolean, minusculas: boolean, numeros: boolean, caracteres: boolean): string { if (longitud <= 0) { throw new Error('Longitud no válida.'); } let caracteresEscogidos: string = ''; let password: string = ''; // Se añaden los caracteres que se van a incluir en la contraseña. if (mayusculas) caracteresEscogidos += c_mayusculas; if (minusculas) caracteresEscogidos += c_munisculas; if (numeros) caracteresEscogidos += c_numeros; if (caracteres) caracteresEscogidos += c_caracteres; let posicion: number = 0; // Se genera la contraseña. for (let i: number = 0; i < longitud; i++) { posicion = Math.floor(Math.random() * caracteresEscogidos.length); password += caracteresEscogidos.charAt(posicion); } return password; }