Created
February 26, 2024 19:02
-
-
Save rmsaitam/8dd0b97bf878b83e510e03e8257652e7 to your computer and use it in GitHub Desktop.
Script Python de exemplo de como deve ser criar e armazenar senhas de usuários no banco de dados
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import bcrypt | |
import mysql.connector | |
# Função para conectar ao banco de dados MySQL | |
def conectar_mysql(): | |
return mysql.connector.connect( | |
host="localhost", | |
user="root", | |
password="secret", # Senha configurada para o MySQL | |
database="safe_password" # Nome do banco de dados | |
) | |
# Função para criar um hash bcrypt da senha | |
def criar_hash(senha): | |
# Geração de um salt aleatório | |
salt = bcrypt.gensalt() | |
# Criação do hash da senha com o salt | |
hash_senha = bcrypt.hashpw(senha.encode('utf-8'), salt) | |
return hash_senha | |
# Função para armazenar a senha no banco de dados MySQL | |
def armazenar_senha(nome, email, senha): | |
conexao = None | |
try: | |
conexao = conectar_mysql() | |
cursor = conexao.cursor() | |
# Criar o hash da senha | |
hash_senha = criar_hash(senha) | |
# Inserir o usuário e a senha no banco de dados | |
cursor.execute("INSERT INTO usuarios (nome, email, senha) VALUES (%s, %s, %s)", (nome, email, hash_senha)) | |
# Confirmar a transação | |
conexao.commit() | |
print("Senha armazenada com sucesso!") | |
except mysql.connector.Error as erro: | |
print("Erro ao armazenar a senha:", erro) | |
finally: | |
if conexao and conexao.is_connected(): | |
cursor.close() | |
conexao.close() | |
# Função para verificar a senha no banco de dados MySQL | |
def verificar_senha(email, senha): | |
try: | |
conexao = conectar_mysql() | |
cursor = conexao.cursor() | |
# Buscar o hash da senha associado ao email | |
cursor.execute("SELECT senha FROM usuarios WHERE email = %s", (email,)) | |
hash_senha = cursor.fetchone()[0] | |
# Verificar se a senha fornecida corresponde ao hash armazenado | |
if bcrypt.checkpw(senha.encode('utf-8'), hash_senha.encode('utf-8')): | |
print("Senha correta. Acesso permitido.") | |
else: | |
print("Senha incorreta. Acesso negado.") | |
except mysql.connector.Error as erro: | |
print("Erro ao verificar a senha:", erro) | |
finally: | |
if conexao.is_connected(): | |
cursor.close() | |
conexao.close() | |
# Exemplo de uso da função para armazenar senha | |
nome = "Fulano" | |
email = "[email protected]" | |
senha = "senha_segura123" | |
armazenar_senha(nome, email, senha) | |
verificar_senha(email, senha) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment