--- name: generate_password kind: function lang: bash domain: cybersecurity version: "1.0.0" purity: impure signature: "generate_password(mode: string, length: int, count: int) -> void" description: "Genera contraseñas seguras en cuatro modos: full (alfanumérico + símbolos, excluye caracteres ambiguos), alpha (solo alfanumérico), passphrase (palabras aleatorias unidas con guión) y pin (numérico). Calcula y muestra la entropía en bits para cada modo." tags: [bash, cybersecurity, password, generator, entropy, security, urandom, pendiente-usar] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: mode desc: "modo de generación: full (alfanumérico+símbolos, por defecto), alpha (solo letras y números), passphrase (palabras), pin (numérico)" - name: length desc: "longitud en caracteres para full/alpha/pin, o número de palabras para passphrase (por defecto: 16)" - name: count desc: "número de contraseñas a generar (por defecto: 1)" output: "imprime las contraseñas generadas a stdout (una por línea) con información de entropía" tested: false tests: [] test_file_path: "" file_path: "bash/functions/cybersecurity/generate_password.sh" source_repo: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/egutierrez/DevLauncher.git" source_license: "MIT" source_file: "scripts/linux/ciberseguridad/utilidades/generar_password.sh" --- ## Ejemplo ```bash source bash/functions/cybersecurity/generate_password.sh # Contraseña completa de 20 caracteres generate_password full 20 # 5 contraseñas alfanuméricas de 16 caracteres generate_password alpha 16 5 # Passphrase de 6 palabras generate_password passphrase 6 # PIN de 8 dígitos generate_password pin 8 ``` ## Notas Usa `/dev/urandom` como fuente de aleatoriedad criptográficamente segura. El modo `full` excluye caracteres ambiguos (0, O, l, I, 1) para mejorar legibilidad. El modo `passphrase` requiere un diccionario del sistema (`/usr/share/dict/words` o similar). La entropía se calcula como log2(charset^length) en bits. Las contraseñas nunca se escriben a disco.