[firebase-br] IBO 5.5.3 - Problema ao gravar campo criptografado
Cyber Guido
cyberguido em gmail.com
Qua Dez 3 15:18:05 -03 2014
Você não teria como fazer um "bacalhau" testando com o FireDAC? Se eu
não estivesse na correria que estou agora, eu mesmo o faria.
------ Original Message ------
From: "Marcos Weimer" <marcosweimer em gmail.com>
To: "Cyber Guido" <cyberguido em gmail.com>
Cc: "FireBase" <lista em firebase.com.br>
Sent: 03/12/2014 14:57:09
Subject: Re: Re[4]: [firebase-br] IBO 5.5.3 - Problema ao gravar campo
criptografado
>A minha suspeita é exatamente esta, ao enviar #$14'‹'#$1B#7#6#$A#$16
>para o banco está ocorredo alguma "modificação
>
>-=Ma®©oS=-
>Marcos R. Weimer
>Delphi / C# / ASP.NET / PHP / WebServices / Firebird
>
>
>Em 3 de dezembro de 2014 14:55, Cyber Guido <cyberguido em gmail.com>
>escreveu:
>>Pelo que entendi até aqui, a função retorna o valor correto, o
>>problema é apenas quando grava no banco, certo? Ou seja, se você fizer
>>um programa que pegue o conteúdo de um editor, o criptografe, e o
>>apresente em outro editor, o resultado é perfeito?
>>
>>Se sim, a minha suspeita, na verdade a única explicação que vejo, é
>>que o IBO esteja fazendo alguma conversão no momento de enviá-lo para
>>o banco, não vejo outra explicação.
>>
>>Cordialmente,
>>Carlos
>>
>>------ Original Message ------
>>From: "Marcos Weimer" <marcosweimer em gmail.com>
>>To: "Cyber Guido" <cyberguido em gmail.com>
>>Cc: "FireBase" <lista em firebase.com.br>
>>Sent: 03/12/2014 14:39:26
>>Subject: Re: Re[2]: [firebase-br] IBO 5.5.3 - Problema ao gravar campo
>>criptografado
>>
>>>tem, mas também não funcionou.
>>>
>>>Veja a function...
>>>
>>>function Criptografia(mStr, mChave: ansistring): ansistring;
>>>var
>>> i, TamanhoString, pos, PosLetra, TamanhoChave: Integer;
>>>begin
>>> Result := mStr;
>>> TamanhoString := Length(mStr);
>>> TamanhoChave := Length(mChave);
>>> for i := 1 to TamanhoString do
>>> begin
>>> pos := (i mod TamanhoChave);
>>> if pos = 0 then
>>> pos := TamanhoChave;
>>> PosLetra := ord(Result[i]) xor ord(mChave[pos]);
>>> if PosLetra = 0 then
>>> PosLetra := ord(Result[i]);
>>> Result[i] := AnsiChar(PosLetra);
>>> end;
>>>end;
>>>
>>>oque esta ansistring estava string e onde esta ansichar estava chr
>>>
>>>está função é bem antiga e não tenho como mudar (centenas de senhas
>>>criptografadas), senão partiria para um hash md5 ou algo do genero.
>>>
>>>
>>>-=Ma®©oS=-
>>>Marcos R. Weimer
>>>Delphi / C# / ASP.NET / PHP / WebServices / Firebird
>>>
>>>
>>>Em 3 de dezembro de 2014 14:34, Cyber Guido <cyberguido em gmail.com>
>>>escreveu:
>>>>Neste caso a única suspeita que eu tenho é que
>>>>"qgrava.parambyname('senha').asstring", mais precisamente
>>>>"asstring", esteja interferindo. Apesar de mostrar o valor correto
>>>>pode estar enviando uma sequência de bytes incorreta. Não tem
>>>>"asAnsiString" como no FireDAC?
>>>>
>>>>Cordialmente,
>>>>Carlos
>>>>
>>>>------ Original Message ------
>>>>From: "Marcos Weimer" <marcosweimer em gmail.com>
>>>>To: "Cyber Guido" <cyberguido em gmail.com>; "FireBase"
>>>><lista em firebase.com.br>
>>>>Sent: 03/12/2014 13:29:48
>>>>Subject: Re: [firebase-br] IBO 5.5.3 - Problema ao gravar campo
>>>>criptografado
>>>>
>>>>>Esqueci de mencionar, mas eu já havia alterado para ansistring sem
>>>>>sucesso, por isso que mandei a duvida aqui na firebase e não em uma
>>>>>lista de delphi.
>>>>>
>>>>>- No ctrl+F7 o valor retornado é o correto
>>>>>- depois de passar o parametro para a query no vejo o valor que
>>>>>está no parametro e é o correto
>>>>>
>>>>>Só quando grava que algo de errado acontece
>>>>>
>>>>>-=Ma®©oS=-
>>>>>Marcos R. Weimer
>>>>>Delphi / C# / ASP.NET / PHP / WebServices / Firebird
>>>>>
>>>>>
>>>>>Em 3 de dezembro de 2014 12:36, Cyber Guido <cyberguido em gmail.com>
>>>>>escreveu:
>>>>>>Marcos,
>>>>>>
>>>>>>XE6, como já foi dito, trata strings de maneira radicalmente
>>>>>>diferente do D6. Experimente substituir 'String' por 'AnsiString'
>>>>>>(no D6 strings eram ansistring) que deve resolver.
>>>>>>
>>>>>>Este artigo de autoria de Cary Jensen pode ser útil
>>>>>>
>>>>>>http://caryjensen.blogspot.com.br/2010/01/migrating-existing-delphi-applications.html
>>>>>>
>>>>>>preste especial atenção ao 8º parágrafo que tem link para um white
>>>>>>paper.
>>>>>>
>>>>>>Cordialmente,
>>>>>>Carlos
>>>>>>
>>>>>>
>>>>>>------ Original Message ------
>>>>>>From: "Marcos Weimer" <marcosweimer em gmail.com>
>>>>>>To: "FireBase" <lista em firebase.com.br>
>>>>>>Sent: 03/12/2014 11:55:07
>>>>>>Subject: [firebase-br] IBO 5.5.3 - Problema ao gravar campo
>>>>>>criptografado
>>>>>>
>>>>>>>Ola!
>>>>>>>
>>>>>>>Sempre gravamos da mesma forma...
>>>>>>>qgrava.parambyname('senha').asstring :=
>>>>>>>criptografia(senhadigitada,
>>>>>>>chavecripto)
>>>>>>>
>>>>>>>a function criptografia retorna uma string
>>>>>>>#$14#$008B#$1B#7#6#$A#$16
>>>>>>>
>>>>>>>quando vou no parambyname o valor confere com oque é retornado
>>>>>>>pelo
>>>>>>>criptografia, mas ao gravar não funciona.
>>>>>>>
>>>>>>>Antes usávamos o IBO 4.9.8 (no D6, agora utilizamos o XE6) e
>>>>>>>funcionava
>>>>>>>perfeitamente. Alguém passou por algo similar ?
>>>>>>>
>>>>>>>
>>>>>>>-=Ma®©oS=-
>>>>>>>Marcos R. Weimer
>>>>>>>Delphi / C# / ASP.NET / PHP / WebServices / Firebird
>>>>>>>______________________________________________
>>>>>>>FireBase-BR (http://www.firebase.com.br/) - Hospedado em
>>>>>>>http://www.locador.com.br/
>>>>>>>Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>>http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>
>>>>>>
>>>>>>______________________________________________
>>>>>>FireBase-BR (http://www.firebase.com.br/) - Hospedado em
>>>>>>http://www.locador.com.br/
>>>>>>Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>>>http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>>>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>
>>>
>
Mais detalhes sobre a lista de discussão lista