Diferenças na decriptaçao de senhas como resolver?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Nascimento »

Amigos estou portando um sistema antes em clipper porteio para harbour console e agora estou portando para minigui

me deparei com uma coisa intrigante na decriptaçao de senha ate simples segue as imagens para os amigos entenderem e se é possivel a correção

ja que meu proposito é atualizar o sistema então manter a mesma senha é mais comodo do que trocar as senhas de todos operador entre matriz e filias

coloquei uma senha simples "102030"
printei o resultado compilado com so com a gtwvt (em console)  e abaixo compilada com a minigui
printei o resultado compilado com so com a gtwvt (em console) e abaixo compilada com a minigui
agora vamos aos codigos

com gtwvt

Código: Selecionar todos

Function main()

local n


use senha new shared 

dcript:= Space(0)
  for n:= 1 to 8
     if (SubStr(senha, n, 1) != " ")
        dcript:= dcript + Chr(Asc(Upper(SubStr(senha, n, 1))) - 100 - n)
     else
        dcript:= dcript + " "
     endif
   next

alert("A SENHA E "+ dcript)



com minigui

Código: Selecionar todos

#include "minigui.ch"

FUNCTION Main()
local n


use senha new shared 

dcript:= Space(0)
  for n:= 1 to 8
     if (SubStr(senha, n, 1) != " ")
        dcript:= dcript + Chr(Asc(Upper(SubStr(senha, n, 1))) - 100 - n)
     else
        dcript:= dcript + " "
     endif
   next

   DEFINE WINDOW Form_1             ;
      AT 90,90                      ;
      WIDTH 400                     ;
      HEIGHT 150                    ;
      TITLE "Apresenta senha"  ;
      MAIN
   END WINDOW

   @ 30, 75 LABEL senha ;
      PARENT Form_1       ;
      font "verdana"      ;
      bold size 12        ;
      autosize            ;
      VALUE "A SENHA É " +dcript ;
      

   Form_1.Activate

   RETURN NIL
senha.rar
e finalmente o dbf usado nos 2 para o respectivo teste
(138 Bytes) Baixado 64 vezes
Att: Nascimento
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Mario Mesquita »

Bom dia.

Boa pergunta! Eu também estou portando um sistema Clipper para MiniGui e a decriptação de senha na HMG não é igual ao resultado no Clipper.

O que consegui é comparar o texto criptografado com a senha arquivada. Ou seja, o usuário digita a senha, o programa criptografa e compara com a senha arquivada e criptografada. Isso funciona.

Mas a decriptação não consegui. Se os colegas souberem algo...

Sds,
Mario.
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Nascimento »

pois é amigo mario tentei como voce ta dizendo mais a criptografia boba como ta ai tambem nao ficou digamos igual
o incoveniente que causa disso é que como estamos portando e pretendemos atualizar geralmente remoto as senhas nao iram bater
o que complica rsrs :-O
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Toledo »

Nascimento, se você verificar no Clipper o UPPER do campo SENHA, vai notar que não muda nada, apenas a letra L que tem um correspondente em MAIÚSCULO, mas pelo jeito o último caracter do campo senha (letra L) não faz parte da senha. Já na MiniGui, o UPPER do campo SENHA, alguns caracteres tem seu correspondente em MAIÚSCULO, diferente do que ocorre no Clipper.

Então, se a letra L (último caracter do campo SENHA) não faz parte da senha, então retire a função UPPER que está na sua função de encriptação.

Código: Selecionar todos

dcript:= dcript + Chr(Asc(SubStr(senha, n, 1)) - 100 - n)
Obs.: no calculo da sua rotina de encriptação, a letra L (minúsculo), que está no final do campo senha (posição 8), vai retornar um valor NEGATIVO (-32), então não sei qual será o retorno de CHR(-32). Calculo: (L = 76) - 100 - 8 = -32

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Nascimento »

toledo funcionou , mais nao funcionou rsrs explicando modifiquei o codigo para ver se batia as criptos e o resultado nao foi la muito bom

1º decriptei o que tem no campo senha retornando a 102030 ok

2º criei uma variavel de nome c_crip para simular a digitaçao da mesma "102030"

3º imprimi na tela o valor decriptado do dbf o retorno da c_crip e o que esta no banco

4º observe que fica diferente a cripto que esta no banco com a cripto que foi gerada :%
erro.jpg
segue o codigo abaixo

Código: Selecionar todos

#include "minigui.ch"

FUNCTION Main()
local n


use senha new shared 

c_crip:="102030"  // aqui é como fosse uma digitaçao da senha 

dcript:= Space(0)
  for n:= 1 to 8
     if (SubStr(senha, n, 1) != " ")
        dcript:= dcript + Chr(Asc(SubStr(senha, n, 1)) - 100 - n)
     else
        dcript:= dcript + " "
     endif
   next

   cript:= Space(0)
  for n:= 1 to 8
     if (SubStr(c_crip, n, 1) != " ")
        cript:= cript + Chr(Asc(SubStr(c_crip, n, 1)) + 100 + n)
     else
        cript:= cript + " "
     endif
   next
   
   
   DEFINE WINDOW Form_1             ;
      AT 90,90                      ;
      WIDTH 460                     ;
      HEIGHT 250                    ;
      TITLE "Apresenta senha"  ;
      MAIN
   END WINDOW

   @ 30, 75 LABEL senha ;
      PARENT Form_1       ;
      font "verdana"      ;
      bold size 12        ;
      autosize            ;
      VALUE "A SENHA DECRIPTADA É " +dcript  // aqui decripta a senha do banco ok
		 
  @ 60, 75 LABEL senha2 ;
      PARENT Form_1       ;
      font "verdana"      ;
      bold size 12        ;
      autosize            ;
      VALUE "SIMULANDO A CRIPTO " +Win_OemToAnsi(cript) // aqui eu gerei a cripto para simular uma comparaçao
		
	  @ 90, 75 LABEL senha3 ;
      PARENT Form_1       ;
      font "verdana"      ;
      bold size 12        ;
      autosize            ;
      VALUE "CONTEUDO DO CAMPO SENHA " +Win_OemToAnsi(senha) // e aqui é a cripto que tem no banco	 

   Form_1.Activate

   RETURN NIL
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Toledo »

Mude esta variável, coloque um espaço em branco no início:

Código: Selecionar todos

c_crip:=" 102030"  // aqui é como fosse uma digitaçao da senha
Observe no campo SENHA do seu arquivo DBF que existe um espaço em branco no início do campo.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Diferenças na decriptaçao de senhas como resolver?

Mensagem por Nascimento »

Resolvido agradeço a todos!
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Responder