Cómo Crear Contraseñas Seguras con un Generador de Contraseñas en Python

Cómo Crear Contraseñas Seguras con un Generador de Contraseñas en Python

En el mundo digital de hoy, proteger tus cuentas en línea nunca ha sido más crucial. Los ataques cibernéticos están en aumento, y una contraseña débil puede ser el eslabón más débil que ponga en riesgo tu seguridad digital. Aquí es donde un Generador de Contraseñas en Python se convierte en una herramienta indispensable. En este post, exploraremos cómo puedes usar esta herramienta para crear contraseñas robustas y seguras.

Short del Generador Contraseñas

La Necesidad de Contraseñas Fuertes

Las contraseñas son la primera línea de defensa contra accesos no autorizados a tus cuentas personales y laborales. Sin embargo, crear una contraseña fuerte y única para cada cuenta puede ser tedioso. Es aquí donde nuestro proyecto, un generador de contraseñas desarrollado en Python, simplifica el proceso.

Dentro de mis aplicaciones gratuitas tengo otro sistema generador de contraseñas hecho en Javascript si te sientes más familiarizado con está tecnología. También tengo otras aplicaciones en Python que te podrían servir.

Introducción al Generador de Contraseñas en Python

Nuestro generador de contraseñas es un proyecto compuesto por dos archivos principales: app.py y main.py. Esta aplicación ha sido diseñada para ser sencilla de usar pero poderosa en funcionalidad, ofreciendo a los usuarios la capacidad de personalizar sus contraseñas generadas según varios criterios.

Este sistema utiliza el framework de flask para poder utilizar plantillas html y mostrarla vía web, de hecho por este motivo se creó el archivo app.py, ya que ejecutando a main.py desde consola te genera las contraseñas también.

Características Principales

El Generador de Contraseñas en Python ofrece varias opciones para personalizar la contraseña generada:

  • Longitud Personalizable: Puedes elegir cuán larga quieres que sea tu contraseña, lo cual es crucial para determinar su fortaleza.
  • Inclusión de Números: Aumenta la complejidad de tu contraseña con números.
  • Caracteres Especiales: Añade una capa adicional de seguridad con caracteres especiales.
  • Mayúsculas: La inclusión de letras mayúsculas hace que tus contraseñas sean aún más difíciles de descifrar.

Cómo Funciona

Nuestro generador utiliza una combinación de letras minúsculas, números, caracteres especiales y mayúsculas para crear contraseñas. Estos elementos se mezclan de manera aleatoria para generar una contraseña segura que cumple con los criterios especificados por el usuario.

Ejemplo de Uso

Para utilizar el generador, simplemente debes ejecutar el archivo main.py y seguir las instrucciones en la consola. Puedes personalizar la longitud de tu contraseña y decidir si incluir números, caracteres especiales y mayúsculas.

Código de mi archivo main.py

import string
import random

def generate_password(length=8, include_numbers=True, include_special_chars=True, include_uppercase=True):
    """
    Genera una contraseña segura.

    :param length: Longitud de la contraseña. Por defecto es 8.
    :param include_numbers: Incluir números en la contraseña. Por defecto es True.
    :param include_special_chars: Incluir caracteres especiales. Por defecto es True.
    :param include_uppercase: Incluir mayúsculas. Por defecto es True.
    :return: La contraseña generada como una cadena.
    """
    # Definir los bloques de construcción de la contraseña
    letters = string.ascii_lowercase
    numbers = string.digits if include_numbers else ''
    special_chars = string.punctuation if include_special_chars else ''
    uppercase = string.ascii_uppercase if include_uppercase else ''

    # Combinar todos los posibles caracteres
    possible_chars = letters + numbers + special_chars + uppercase

    # Generar la contraseña
    password = ''.join(random.choice(possible_chars) for _ in range(length))

    return password

# Interacción con el usuario
if __name__ == "__main__":
    length = int(input("Longitud de la contraseña (por defecto 8): ") or 8)
    include_numbers = input("Incluir números? (S/n): ").lower() != 'n'
    include_special_chars = input("Incluir caracteres especiales? (S/n): ").lower() != 'n'
    include_uppercase = input("Incluir mayúsculas? (S/n): ").lower() != 'n'

    password = generate_password(length, include_numbers, include_special_chars, include_uppercase)
    print(f"Tu nueva contraseña es: {password}")

Código de mi archivo app.py

from flask import Flask, request, render_template_string

# Asegúrate de que main.py esté en el mismo directorio que este archivo, o ajusta la ruta de importación según sea necesario.
from main import generate_password

app = Flask(__name__)


# Define una página simple para generar contraseñas
@app.route("/", methods=["GET", "POST"])
def home():
    if request.method == "POST":
        # Obtiene los parámetros del formulario web
        length = int(request.form.get("length", 8))
        include_numbers = "include_numbers" in request.form
        include_special_chars = "include_special_chars" in request.form
        include_uppercase = "include_uppercase" in request.form

        # Genera la contraseña
        password = generate_password(
            length, include_numbers, include_special_chars, include_uppercase
        )

        # Pasa la contraseña generada de vuelta al template
        return render_template_string(PAGE_TEMPLATE, password=password)
    else:
        # No se ha enviado el formulario, muestra la página por defecto
        return render_template_string(
            PAGE_TEMPLATE, password="Tu contraseña aparecerá aquí."
        )


# HTML del template en forma de string
# HTML del template en forma de string, ahora con CSS responsivo
# HTML del template en forma de string, utilizando Bootstrap
PAGE_TEMPLATE = """
<!doctype html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Generador de Contraseñas</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.min.css">
</head>
<body>
    <nav class="container-fluid">
        <ul>
            <li><strong>Generador de Contraseñas</strong></li>
        </ul>
        <ul>
            <li><a href="https://www.configuroweb.com/" role="button">Para más desarrollos configuroweb</a></li>
        </ul>
    </nav>
    <main class="container">
        <div class="grid">
            <section>
                <hgroup>
                    <h2>Genera una contraseña segura</h2>
                    <h3>Completa los siguientes campos</h3>
                </hgroup>
                <form method="post" class="needs-validation" novalidate>
                    <div class="form-group">
                        <label for="length">Longitud:</label>
                        <input type="number" class="form-control" name="length" value="8" required>
                    </div>
                    <div class="form-group form-check">
                        <input type="checkbox" class="form-check-input" name="include_numbers" id="include_numbers" checked>
                        <label class="form-check-label" for="include_numbers">Incluir números</label>
                    </div>
                    <div class="form-group form-check">
                        <input type="checkbox" class="form-check-input" name="include_special_chars" id="include_special_chars" checked>
                        <label class="form-check-label" for="include_special_chars">Incluir caracteres especiales</label>
                    </div>
                    <div class="form-group form-check">
                        <input type="checkbox" class="form-check-input" name="include_uppercase" id="include_uppercase" checked>
                        <label class="form-check-label" for="include_uppercase">Incluir mayúsculas</label>
                    </div>
                    <button type="submit" class="btn btn-primary btn-block">Generar Contraseña</button>
                </form>
                <p class="mt-4 text-center">{{ password }}</p>
            </section>
        </div>
    </main>
    <footer class="container">
        <small>
            <a href="#">Política de privacidad</a> • <a href="#">Términos de servicio</a>
        </small>
    </footer>
</body>
</html>

"""


if __name__ == "__main__":
    app.run(debug=True)

Repositorio de GitHub del Sistema Generador de Contraseñas en Python

Generador de Contraseñas Python

Conclusión

Asegurar tus cuentas en línea es más importante que nunca, y el Generador de Contraseñas en Python es una herramienta valiosa para lograrlo. Con su ayuda, puedes generar contraseñas fuertes de manera rápida y eficiente, protegiendo tus datos personales contra amenazas cibernéticas.

Implementar prácticas de seguridad sólidas es esencial en nuestra era digital, y herramientas como esta hacen que sea más accesible para todos mantenerse seguros en línea.

Para desarrollos a medida me puedes contactar en el siguiente enlace de contacto

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

×
¿Qué te interesa?
Selecciona los temas de interés sobre
los que deseas recibir noticias: