Pessoal,
Estou utilizando o banco de usu�rios de uma outra aplica��o por�m a
senha � criptografada. Arrumei a fun��o que
criptografa/descriptografa a senha mas estou tendo problemas ao
tentar descriptografar a senha para dar acesso ao meu sistema.
Ser� que algu�m poderia me ajudar? Onde tenho que passar a senha
para descriptografar e depois passar a senha para valida��o no
banco??? J� tentei de v�rias formas e n�o consegui.
Tenho o seguinte:
************************************************************
ROTINA PARA CRIPTOGRAFAR/DESCRIPTOGRAFAR SENHA
Function TUtil.CRIPTO_SENHA(pTexto: string; const SENHA: string):
string;
{ Criptografa a Senha}
var
vCompr_Texto, vCompr_Senha: integer;
vCont_Texto, vCont_Senha: integer;
vInt_Texto, vInt_Senha, vInt_Result : integer;
vResultado: string;
vLetra : char;
i: integer;
begin
{Inicializando as vari�veis}
vCompr_Texto := Length(pTexto);
vCompr_Senha := Length(SENHA);
vCont_Senha := 1;
vResultado := '';
{Criptografando ou Decriptografando}
for vCont_Texto := 1 to vCompr_Texto do
begin
vInt_Texto := Ord(pTexto[vCont_Texto]);
i:=vCont_Texto;
if i>vCompr_Senha then i:=vCompr_Senha;
vInt_Senha := Ord(SENHA[i]);
vInt_Result := vInt_Texto XOR vInt_Senha;
vLetra := Chr(vInt_Result);
vResultado := vResultado + vLetra;
vCont_Senha := vCont_Senha + 1;
if (vCont_Senha > vCompr_Senha) then
begin
vCont_Senha := 1;
end;
end;
{Retornando um valor}
CRIPTO_SENHA := vResultado;
end;
************************************************************
TENHO QUE PASSAR AGORA PARA ESSAS ROTINAS A SENHA
function TFrmPrincipal.fVerificaSenha(pUsuario, pSenha: String ) :
boolean;
var
sqlStr: String;
begin
sqlStr := '';
fVerificaSenha := false;
if ( ( pUsuario = '' ) or ( pSenha = '' ) ) then
exit;
sqlStr := sqlStr + 'select * from USUARIO where
USUARIO_SENHA = ';
sqlStr := sqlStr + #39 + pSenha + #39;
// Consulta tabela de usuarios
DMSAV.qryAux.Close;
DMSAV.qryAux.SQL.Clear;
DMSAV.qryAux.SQL.Add( sqlStr );
DMSAV.qryAux.Open;
// Se achou
if ( not DMSAV.qryAux.Eof ) then
fVerificaSenha := true
else
fVerificaSenha := false;
end;
---------------------------------------------------------------------
----
procedure TFrmPrincipal.edtSenhaChange(Sender: TObject);
var
i: integer;
begin
if (( EditNomeUsuario.Text = '' ) or
( edtSenha.Text = '' )) then
exit;
if ( fVerificaSenha( EditNomeUsuario.Text, edtSenha.Text ) )
then
begin
imgSinalVerde.Visible := true;
panSenha.Repaint;
Sleep( 500 );
pAcessaSistema( EditNomeUsuario.Text );
end;
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED] ou [EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que voc� faz do Yahoo! Grupos est� sujeito aos:
http://br.yahoo.com/info/utos.html