Este é um sistema de Login desenvolvido em Python com a biblioteca PySide6. Utilizei MySQL para manipulação dos dados e PyQt Designer para criar o layout da aplicação.
- Tratamento de todos os inputs de dados do usuário para prevenir vulnerabilidades comuns de injeção de código.
- Utilização de Placeholders nos inputs destinados ao MySQL para prevenir SQL Injection.
- Armazenamento de todas as senhas criptografadas com SHA-512 no MySQL.
- Verificação por código enviado via email para login e criação de conta, adicionando uma camada extra de segurança.
- Tratamento de erros e logs com mensagens de erro exibidas na tela.
- Conexão para enviar o Email criptografada com TLS .
- Login seguro com verificação de Email obrigatória.
- Exibição de logs e telas de erro caso algo dê errado.
- Limitação de caracteres para cada input.
- Verificação da existência do login no banco de dados.
- Função para visualizar a senha digitada.
- PySide6: Biblioteca oficial da Qt para Python, que permite a criação de interfaces gráficas de usuário (GUIs) robustas e modernas.
- MySQL: PyMySQL é um módulo que permite a conexão e a manipulação de bancos de dados MySQL a partir do Python.
- SMTP: smtplib é um módulo que define uma interface para enviar emails através do protocolo SMTP (Simple Mail Transfer Protocol).
- Threading: threading é um módulo que permite a execução de operações em segundo plano, utilizando threads.
- Random: random é um módulo que implementa geradores de números pseudo-aleatórios para várias distribuições.
- Hashlib: hashlib é um módulo que fornece uma interface para algoritmos de hash seguros, como SHA-256.
- Limitação e tratamento para todos os inputs.
- Exibição de telas e logs de erro.
- Verificação de email e username já cadastrados para impedir duplicidade de conta.
- Verificação de email através de código enviado para criar uma conta.
- Função para visualizar a senha digitada.
- Foram colocadas apenas 4 telas para não comprometer a visibilidade, devido ao grande número de telas de erro.

- Foram colocadas apenas 4 telas para não comprometer a visibilidade, devido ao grande número de telas de erro.










