Criptografia Simples
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...
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
Curtidas 0
Respostas
Marciosystem
31/08/2008
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
GOSTEI 0
Nasguone
31/08/2008
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;
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;
GOSTEI 0