Agora vou falar sobre um problema comum, que é quando tentamos ler, no ASP.Net, um campo criptografado com a função AES_ENCRYPT do MySQL.
Como essa função transforma a string enviada em um dado binário, a leitura dos dados pode retornar algo ilegível ou apenas identificado como um vetor de bytes. Portanto, se o retorno do seu DataReader ou seu DataSet é System.Byte[], saiba que o motivo é esse, mas a solução é simples.
Vejam esse trecho de código:

 

String strComando = "SELECT AES_DECRYPT(senha, '" + chave + "') as senha FROM clientes
WHERE email LIKE '" + strEmailUsuario + "'";

MySqlConnectionminhaConexao = new MySqlConnection(strStringConexao);
MySqlCommandmeuComando = new MySqlCommand(strComando, minhaConexao);
minhaConexao.Open();
MySqlDataReaderdr;

dr = meuComando.ExecuteReader();
String strSenha;

try
{
while (dr.Read())
{
strSenha = dr.GetString("senha");
}
}
finally
{
minhaConexao.Close();
}

 

O método GetString consegue identificar e retornar o conteúdo correto, ou seja, a string contida no campo criptografado.

Claro que para isso o comando AES_DECRYPT precisa ter a sintaxe correta e a chave de criptografia precisa ser a mesma usada no momento de gravação do dado no banco. Caso não tenha ficado claro, crie algo como:

DataSetds = newDataSet();
strSenha= ds.Tables[0].Rows[0]["senha"].ToString();


Você verá que o retorno não será a String, mas apenas System.Byte[].

Ou seja, se vai ler algo gravado num campo criptografado, use o bom e velho GetString().


Outras dicas de MySQL


Adicionando colunas a uma tabela já existente

Alterando colunas de uma tabela já existente

Como salvar consulta do MySQL em CSV

Criando uma tabela a partir de outra já existente

Criando usuários e atribuindo permissões

Criptografando dados no MySQL

Descobrindo o tamanho em Mb da sua base de dados

Duplicando uma base de dados (backup da base de dados)

Duplicando uma tabela

Encontrando registros duplicados

Exibindo dados em formato de formulário

Exibindo permissões

Exibindo usuários

Gerando um dump de todas as bases de dados

Gerando um dump de uma base de dados específica

Gerando um dump de uma tabela específica

Gerando um dump somente da base de dados

Identificando e contando registros duplicados

Lendo dados criptografados no MySQL com C#

Removendo colunas a uma tabela já existente

Removendo permissões

Removendo registros duplicados e deixando somente o mais antigo

Removendo registros duplicados e deixando somente o mais recente

Renomeando uma tabela

Restaurando um dump

Retornando apenas os primeiros caracteres do campo – Função Left

Retornando apenas os últimos caracteres do campo – Função Right

Selecionando apenas parte de um campo

Selecionando X registros randômicos de uma tabela

Zerando um campo auto incremento

Você Sabia?

O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.


O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.


Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.


A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.