campo senha criptografada

13/09/2012

Tenho uma aplicacao em delphi prism onde tenho uma tela de cadastro e manutencao de usuario.
estou gravando a senha com a AES_ENCRYPT, gravando normal. quando tento recuperar com o codigo abaixo vem em no textBox SYSTEM.BYTE[]
O banco é mysql.

Como resolver?

var con := new MySqlConnection(Constr);
var SQL := "select usu_id,usu_nome, AES_DECRYPT(USU_SENHA,'hpi') as usu_senha, usu_tipo_sec from usuario
where USU_ID = @USU_ID AND USU_NOME = @USU_NOME ";
var cmd := new MySqlCommand(SQL,con);
cmd.Parameters.AddWithValue('@USU_ID',USU_ID);
cmd.Parameters.AddWithValue('@USU_NOME',USU_NOME);
var objs := new List<Usuario>();
con.Open();
try
var dr := cmd.ExecuteReader();
while dr.Read() do
begin
var obj := new Usuario(
USU_ID := dr["USU_ID"].ToString(),
USU_NOME := dr["USU_NOME"].ToString(),
USU_SENHA := dr["USU_SENHA"].ToString(),
USU_TIPO_SEC := dr["USU_TIPO_SEC"].ToString()
);
objs.add(obj);
end;
dr.Close();
finally
con.Close();
end;
Result := objs;

Luiz Souza

Respostas

13/09/2012

Joel Rodrigues

Como não uso o MySql, vale a pergunta: já tentou fazer essa consulta direto no banco e verificar o valor retornado pelo AES_DECRYPT?
Responder Citar

14/09/2012

Luiz Souza

Como não uso o MySql, vale a pergunta: já tentou fazer essa consulta direto no banco e verificar o valor retornado pelo AES_DECRYPT?


Joao...
A primeira coisa que fiz foi direto no banco fazer o mesmo select com descrypt (conforme está no codigo), e aparece a senha normalmente com todas as letras e numeros que cadastrei. so que na milha DAL quando jogo para o objeto, no textBox aparece system.byte[].

So quero saber como fazer para pegar a senha deste select e jogar no textbox corretamente, já que está aparecendo system.byte[].
Responder Citar

14/09/2012

Joel Rodrigues

Como te falei, não uso MySql aqui, mas tenho uma sugestão. Experimente converter o AES_DECRYPT para VARCHAR na consulta.
CAST(AES_DECRYPT(USU_SENHA, 'hpi') AS VACHAR)
Responder Citar

14/09/2012

Luiz Souza

Como te falei, não uso MySql aqui, mas tenho uma sugestão. Experimente converter o AES_DECRYPT para VARCHAR na consulta.
CAST(AES_DECRYPT(USU_SENHA, 'hpi') AS VACHAR)

vACHAR NÃO FUNCIONOU MAIS SIM CHAR.

MUITO OBRIGADO PELA AJUDA
Responder Citar

14/09/2012

Joel Rodrigues

Opa, era VARCHAR (com R), falha de digitação.
Mas que bom que funcionou.
Boa sorte em seus projetos.
Estou encerrando o tópico.
Responder Citar