Mas como faço para inserir um registro em minha tabela no MySQL com um campo encriptado?
Simples, vejam:
INSERT INTO TBL_DADOS(CAMPO1, CAMPO2) VALUES('Meu valor não encriptado', AES_ENCRYPT('Meu valor encriptado', 'MINHA_CHAVE');
Onde "MINHA_CHAVE" pode ser qualquer palavra chave que será utilizada para desencriptar os seus dados.
O resultado de um campo encriptado é um valor binário como por exemplo :
mž ?ôz DF“ ‘²šaѵÓׯ| fõÎ*-^êäÃ
mž ?ôz DF“ ‘²šaѵÓׯ| fõÎ*-^êäÃ
Para tornar a inserção mais segura, você poderá utilizar uma variável registrada no momento da conexão com o banco de dados, assim:
SELECT @CHAVE_CRIPTOGRAFIA := 'minha_chave';
E nos seus comandos SQL, utilize a variável normalmente:
INSERT INTO TBL_DADOS(CAMPO1, CAMPO2) VALUES('Meu valor não encriptado', AES_ENCRYPT('Meu valor encriptado', @CHAVE_CRIPTOGRAFIA);
Mas como faço para descriptografar os dados?
Basta utilizar a função inversa AES_DECRYPT passando o campo e a chave que você utilizou para encriptar o dado.
SELECT AES_DECRYPT(CAMPO2, @CHAVE_CRIPTOGRAFIA) FROM TBL_DADOS;
Nenhum comentário:
Postar um comentário