GARANTIR DESCONTO

Fórum Criptografia Simples #363423

31/08/2008

0

Olá galera do forum DevMedia, estou aqui com uma dúvida que acho que alguem por ai poderá me ajuar...

Encontrei uma rotina simples para criptografar strings(exemplo: campo senha para logar no sistema) e salvar no banco de dados, porém na hora de logar é que não estou conseguindo usar o código certo para fazer a verificação da senha no banco e logar no sistema, alguém ai pode me ajudar? Vou passar a rotina...

1º - Declarei na cláusula, as seguintes variáveis...

implementation

//Variáveis utilizadas na criptografia
var
s: string[255];
c: array[0..255] of byte absolute s;


Criei um MENU principal e um cadastro de usuários que possui

Usuario
Senha
Confirma Senha

3 Botões (Incluir, Ok, Cancelar);

No botão Incluir, apenas dei um insert no ClientDataSet (cdsUsuario), enfim, sem grandes novidades;

No botão OK, atribui o seguinte código:

procedure TForm3.Button1Click(Sender: TObject);
var
i:integer;
begin
if ((edUsuario.text=´´) or (edSenha.text=´´) or (edConfirmaSenha.text=´´)) then
application.messagebox(´Digite algo nos campos´,´Erro´,16)
else
begin
if (edSenha.Text <> edConfirmaSenha.Text) then
application.messagebox(´Senhas não conferem´,´Erro´,0)
else
begin

//Procedimento para Criptografar a String antes de gravar no banco de dados
s := edSenha.Text;
for i := 1 to ord(s[0]) do
c[i] := 23 xor c[i];
//Aqui termina o procedimento de criptografia

//Aqui fala que o campo senha, vai receber o resultado da Criptografia que é (s).
cdsUsuarioSENHA.Value := s;
cdsUsuario.Post;
cdsUsuario.ApplyUpdates(0);
form3.close;
end;
end;
end;

Beleza, gravou criptografado certim no banco de dados... 100¬
O problema agora, é na hora de logar... Como faço para verificar na tela de login, o usuario e senhas cadastrados para conseguir entrar no sistema?

a tela de login possui

Usuario {Edit1 = edUsuario}
Senha {Edit2 = edSenha}


Só lembrando que estou usando FireBird e Tecnologia DBExpress
SQLConnection + SQLDataSet + DatSetProvider + ClientDatSet + DataSource

Galera, ficarei muito feliz se alguém puder me ajudar... Grande abraço a todos...


Charlesbm

Charlesbm

Responder

Posts

31/08/2008

Marciosystem

Olá galera do forum DevMedia, estou aqui com uma dúvida que acho que alguem por ai poderá me ajuar... Encontrei uma rotina simples para criptografar strings(exemplo: campo senha para logar no sistema) e salvar no banco de dados, porém na hora de logar é que não estou conseguindo usar o código certo para fazer a verificação da senha no banco e logar no sistema, alguém ai pode me ajudar? Vou passar a rotina... 1º - Declarei na cláusula, as seguintes variáveis... implementation //Variáveis utilizadas na criptografia var s: string[255]; c: array[0..255] of byte absolute s; Criei um MENU principal e um cadastro de usuários que possui Usuario Senha Confirma Senha 3 Botões (Incluir, Ok, Cancelar); No botão Incluir, apenas dei um insert no ClientDataSet (cdsUsuario), enfim, sem grandes novidades; No botão OK, atribui o seguinte código: procedure TForm3.Button1Click(Sender: TObject); var i:integer; begin if ((edUsuario.text=´´) or (edSenha.text=´´) or (edConfirmaSenha.text=´´)) then application.messagebox(´Digite algo nos campos´,´Erro´,16) else begin if (edSenha.Text <> edConfirmaSenha.Text) then application.messagebox(´Senhas não conferem´,´Erro´,0) else begin //Procedimento para Criptografar a String antes de gravar no banco de dados s := edSenha.Text; for i := 1 to ord(s[0]) do c[i] := 23 xor c[i]; //Aqui termina o procedimento de criptografia //Aqui fala que o campo senha, vai receber o resultado da Criptografia que é (s). cdsUsuarioSENHA.Value := s; cdsUsuario.Post; cdsUsuario.ApplyUpdates(0); form3.close; end; end; end; Beleza, gravou criptografado certim no banco de dados... 100¬ O problema agora, é na hora de logar... Como faço para verificar na tela de login, o usuario e senhas cadastrados para conseguir entrar no sistema? a tela de login possui Usuario {Edit1 = edUsuario} Senha {Edit2 = edSenha} Só lembrando que estou usando FireBird e Tecnologia DBExpress SQLConnection + SQLDataSet + DatSetProvider + ClientDatSet + DataSource Galera, ficarei muito feliz se alguém puder me ajudar... Grande abraço a todos...


Se voce tem rotina para criptografar como a que vc passou, entao quando for testar no codigo abaixo, voce tera que fazer discriptacao da mesma ou criptograr a senha que o usuario esta informando para que posso bater com sua senha gravada no banco.

procedure TForm3.Button1Click(Sender: TObject); 
var 
i:integer; 
begin 
if ((edUsuario.text=´´) or (edSenha.text=´´) or (edConfirmaSenha.text=´´)) then 
application.messagebox(´Digite algo nos campos´,´Erro´,16) 
else 
begin 
if (edSenha.Text <> edConfirmaSenha.Text) then 
application.messagebox(´Senhas não conferem´,´Erro´,0) 
else 
begin 


Voce devera fazer o que te falei acima nesta linha do seu codigo

if (edSenha.Text <> edConfirmaSenha.Text) then



Marcio


Responder

Gostei + 0

09/09/2008

Nasguone

Cara pq vc não utiliza a rotina que tem na paleta do indy misc

Faça um teste coloque dois edit e um memo dois botoes e os componentes
IdEncoderMIME1 - IdDecoderMIME1 o componente tem o num 64 nele..
A rotina vai abaixo

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text := IdEncoderMIME1.Encode(Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.Text := IdDecoderMIME1.DecodeString(memo1.Text);
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar