Sobre Criptografia...
Pessoal estou com uma dúvida tenho um campo criptografado numa tabela e uso DbEdit... na hora de setar o valor não sei que evento ou usar, ou seja o usuário irá entrar no DBEdit com a senha normal e depois irei criptografá-la no banco... seria o before post?
Bruno Belchior
Curtidas 0
Respostas
Massuda
12/05/2005
Eu acho que poderia ser nos eventos OnGetText e OnSetText do TField associado ao campo; no OnGetText você descriptografa enquanto no OnSetText você criptografa a senha.
GOSTEI 0
Bruno Belchior
12/05/2005
Eu acho que poderia ser nos eventos OnGetText e OnSetText do TField associado ao campo; no OnGetText você descriptografa enquanto no OnSetText você criptografa a senha.
Sim no OnGetText a senha é descriptografada mas no OnSetText o [b:b11f8712b6]Text[/b:b11f8712b6] é uma constante...GOSTEI 0
Massuda
12/05/2005
....mas no OnSetText o [b:52b023095c]Text[/b:52b023095c] é uma constante...
Isso é verdade, mas não importa. O que você deve fazer é criptografar a string em Text e armazenar o resultado no campo da tabela. Algo assim:procedure TSeuFormSenhaSetText.(Sender: TField; const Text: String); begin Sender.Value := FuncaoSecretaDeCriptografia(Text); end;
Text é constante porque é o valor que você deve processar. Note que Text será armazenado no campo pela VCL apenas se não existir um tratador para o evento OnSetText (experimente fazer um tratador de evento OnSetText que não faz nada... nada será armazenado na tabela).
GOSTEI 0
Bruno Belchior
12/05/2005
Massuda, consegui resolver meu problema utilizando toda a regra de negócios na classe em vez dos eventos do DataSet... Mas entendi sua colocação quando disse que Text é o valor a ser processado... obrigado...
GOSTEI 0