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

Marcos Weimer marcosweimer em gmail.com
Qua Dez 3 15:12:01 -03 2014


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
>



Mais detalhes sobre a lista de discussão lista