[firebase-br] IBO 5.5.3 - Problema ao gravar campo criptografado

Alexandre camilo em apollosistemas.com.br
Qua Dez 3 15:11:51 -03 2014


Ao enviar

#$14'‹'#$1B#7#6#$A#$16 para o banco, o que fica gravado?


Alexandre Camilo
+55 27 3233-4143

On 03/12/2014 14:57, Marcos Weimer wrote:
> 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 <http://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 <http://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 <http://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
>>>>
>>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em 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