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

Alexandre camilo em apollosistemas.com.br
Qua Dez 3 15:17:59 -03 2014


então manda gravar e depois de gravado faça um select vai isql, 
flamerobin, ibexpert ou qualquer outro software para ver se o resultado 
é diferente do esperado.

Alexandre Camilo
+55 27 3233-4143

On 03/12/2014 15:12, Marcos Weimer wrote:
> a função parece estar correta, pq se chamo criptografia('AÇOUGUE',
> minhachave) retorna #$14'‹'#$1B#7#6#$A#$16 como o esperado
> e se chamo criptografia(#$14'‹'#$1B#7#6#$A#$16, minhachave) retorna
> 'AÇOUGUE'
>
> então a function parece estar funcionando corretamente.
>
>
> -=Ma®©oS=-
> Marcos R. Weimer
> Delphi / C# / ASP.NET / PHP / WebServices / Firebird
>
>
> Em 3 de dezembro de 2014 15:09, Alexandre <camilo em apollosistemas.com.br>
> escreveu:
>
>> Se a resposta à pergunta do Carlos for não, então tente mudar
>>
>> for i := 1 to TamanhoString do
>>
>> por
>>
>> for i := low(mStr) to High(mStr) do
>>
>> tive que fazer isto em uma situação parecida porque no delphi 6 o primeiro
>> campo da string é 0 e no xex é 1 ou vice versa, desta forma atende aos dois
>> casos.
>>
>>
>> Alexandre Camilo
>> +55 27 3233-4143
>>
>>
>>
>> On 03/12/2014 14:55, Cyber Guido wrote:
>>
>>> 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
>>>>>>>
>>>>>>
>>>>   ______________________________________________
>>> 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
>>>
>>>
>> ______________________________________________
>> 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
>>
> ______________________________________________
> 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