Article image
Liz Felix
Liz Felix25/09/2023 15:18
Compartilhe

Como Criptografar um Banco de Dados MySQL Passo a Passo com Exemplos

  • #Banco de dados relacional

A segurança dos dados em bancos de dados MySQL é uma preocupação crítica, especialmente quando se trata de informações sensíveis, como senhas de usuários, dados financeiros ou informações pessoais. Criptografar o banco de dados MySQL é uma maneira eficaz de proteger esses dados contra acessos não autorizados. Neste guia, vamos explorar como criptografar um banco de dados MySQL passo a passo, com exemplos práticos.

Passo 1: Preparação do Ambiente

Antes de começar, certifique-se de que você tenha o MySQL instalado e configurado em seu ambiente de desenvolvimento ou produção. Você também deve ter privilégios administrativos para realizar as alterações necessárias.

Passo 2: Habilitar o Plugin de Criptografia

O MySQL oferece suporte à criptografia através do plugin de criptografia InnoDB. Para habilitar esse plugin, siga estas etapas:

✔ 1. Abra o arquivo de configuração do MySQL, geralmente chamado de my.cnf ou my.ini, dependendo do sistema operacional.

✔ 2. Adicione ou edite a seguinte linha sob a seção [mysqld]:

innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_default_encryption=aes-256-cbc

- innodb_file_per_table=1 permite que cada tabela seja armazenada em um arquivo separado.

- innodb_file_format=Barracuda é necessário para suportar criptografia.

- innodb_default_encryption=aes-256-cbc define o algoritmo de criptografia padrão (você pode escolher outros algoritmos).

-> Reinicie o servidor MySQL para que as alterações entrem em vigor.

Passo 3: Criar uma Tabela Criptografada**

Agora que você habilitou a criptografia, pode criar uma tabela criptografada. Aqui está um exemplo de como fazer isso:

CREATE TABLE dados_sensiveis (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255),
numero_cartao VARBINARY(128) ENCRYPTED,
senha VARBINARY(128) ENCRYPTED
) ENGINE=InnoDB;

Neste exemplo, criamos uma tabela chamada dados_sensiveis com três colunas: id, nome, numero_cartao e senha. As colunas numero_cartao e senha são do tipo VARBINARY e estão marcadas como ENCRYPTED, o que indica que os dados nessas colunas serão criptografados.

Passo 4: Inserir Dados Criptografados

Agora, você pode inserir dados criptografados na tabela. Você deve usar a função AES_ENCRYPT() para criptografar os dados antes de inseri-los. Por exemplo:

INSERT INTO dados_sensiveis (nome, numero_cartao, senha)
VALUES ('João da Silva', AES_ENCRYPT('4111222233334444', 'chave_de_criptografia'), AES_ENCRYPT('minha_senha', 'chave_de_criptografia'));

Neste exemplo, estamos inserindo um nome, um número de cartão de crédito e uma senha na tabela dados_sensiveis. Os dados são criptografados usando a função AES_ENCRYPT() e uma chave de criptografia.

Passo 5: Descriptografar Dados

Para recuperar dados da tabela criptografada, você deve descriptografá-los usando a função AES_DECRYPT(). Aqui está um exemplo de como fazer isso:

SELECT nome, AES_DECRYPT(numero_cartao, 'chave_de_criptografia') AS numero_cartao_descriptografado
FROM dados_sensiveis;

Neste exemplo, estamos selecionando o nome e o número do cartão de crédito da tabela dados_sensiveis. O número do cartão é descriptografado usando a função AES_DECRYPT().

-> Conclusão

A criptografia de um banco de dados MySQL é uma etapa importante para proteger informações sensíveis contra acesso não autorizado. Com os passos descritos neste guia e exemplos práticos, você pode implementar a criptografia em seu banco de dados MySQL de forma eficaz. Lembre-se de gerenciar suas chaves de criptografia com cuidado, pois elas são essenciais para a segurança dos seus dados.

Gostou desse conteúdo?

Então, siga esse passo-a-passo e implemente segurança no seu banco de dados. Não esqueça de deixar seu upvote!

Compartilhe
Comentários (0)