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

Alexandre camilo em apollosistemas.com.br
Qua Dez 3 15:09:18 -03 2014


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
>





Mais detalhes sobre a lista de discussão lista