Criptografia de dados no MySQL

AES_ENCRYPT(string,string_chave), AES_DECRYPT(string,string_chave)

Estas funções permitem criptografia/descriptografia de dados usando o algoritmo oficial AES (Padrão Avançado de Criptografia), antes conhecido como Rijndael.

Os argumentos de entrada podem ser de qualquer tamanho. Se ambos argumentos são NULL, o resultado desta função tam bém será NULL.

A string resultante pode ser calculada como 16*(trunc(tamanho_string/16)+1).

Se AES_DECRYPT() detectar dados inválidos ou padding incorreto, ela retorna NULL.
No entanto, é possível para o AES_DECRYPT() retornar um valor não-NULL (possivelmente lixo) se os dados de entrada ou a chave eram inválidos

Você pode usar as funções AES para armazenar dados de forma criptografada modificando as suas consultas:

INSERT INTO t VALUES (1,AES_ENCRYPT(’text’,'password’));

Você pode obter mais segurança não transferindo a chave em suas conexões a cada consulta, o que pode ser conseguido armazenando-o em varáveis do lado do servidor na hora da conexão.

SELECT @password:=’my password’;
INSERT INTO t VALUES (1,AES_ENCRYPT(’text’,@password));

AES_ENCRYPT() e AES_DECRYPT() foram adicionados na versão 4.0.2, e podem ser considerados a função de criptografia mais segura atualmente disponível no MySQL.

Deixe um comentário