Como eu faço uma tela de Acesso ao Usoario (Senha)
:D Olá amigo estou terminando um programa feito em delphi 5 e preciso de uma ajuda. Eu não sei como é que eu faço uma tela de senha e nem sei como cliptografo. Se poder me ajudar passo a passo ficarei muito grato. Obrigado :wink:
Vinicius Programador
Curtidas 0
Respostas
Skaarj
31/01/2003
Coloco um Dblookupcombobox, um edit e 2 botoes
No botao ENTRAR o seguinte codigo
if DBLookupComboBox1.Text<>´´ then
begin
if Edit1.Text<>´´ then
begin
if DBLookupComboBox1.Text=DtmBibloZero.Tb_UsuarioNome.asstring then
begin
if Edit1.Text=DtmBibloZero.Tb_UsuarioSENHA.AsString then
begin
frm_principal.show;
frm_senha.hide;
end
else
begin
Application.MessageBox(´Senha Incorreta´,´BibloZero´,0);
Edit1.clear;
Edit1.SetFocus;
end;
end
else
begin
Application.MessageBox(´Usuário Incorreto´,´BibloZero´,0);
DBLookupComboBox1.SetFocus;
end;
end
else
begin
Application.MessageBox(´Preencha a senha´,´BibloZero´,0);
Edit1.clear;
Edit1.SetFocus;
end;
end
else
begin
Application.MessageBox(´Selecione o usuário´,´BibloZero´,0);
DBLookupComboBox1.SetFocus;
end;
Que verifica se o usuario existe [sempre existe é um Lookup!!] e verifica se a senha digitada é do usuário escolhido..
Mas se vc qr criptografia, na hora q o usuario escolhe, manda criptografar, no onexit do edit da tela de senha, criptografa o q ele digtou e compara com o gravado na tabela..
olhae ae a funçao de criptografia
function Criptografia(mStr, mChave: string): string;
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] := chr(posLetra);
end;
end;
OU
implementation
var
s : string[255];
c : array[0..255] of Byte absolute s;
{$R *.DFM}
Agora no evento Onclick do botão Encriptar coloque o código abaixo:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
s:=edit1.text;
For i:=1 to ord(s[0]) do
c[i] := 23 XOr c[i];
Label1.Caption:=s;
end;
E no evento Onclick do botão Desencriptar coloque o código abaixo:
procedure TForm1.Button2Click(Sender: TObject);
var
i:Integer;
begin
s:=Label1.Caption;
For i:=1 to Length(s) do
s[i] := char(23 Xor ord(c[i]));
Label2.Caption:=s;
end;
Blz?
No botao ENTRAR o seguinte codigo
if DBLookupComboBox1.Text<>´´ then
begin
if Edit1.Text<>´´ then
begin
if DBLookupComboBox1.Text=DtmBibloZero.Tb_UsuarioNome.asstring then
begin
if Edit1.Text=DtmBibloZero.Tb_UsuarioSENHA.AsString then
begin
frm_principal.show;
frm_senha.hide;
end
else
begin
Application.MessageBox(´Senha Incorreta´,´BibloZero´,0);
Edit1.clear;
Edit1.SetFocus;
end;
end
else
begin
Application.MessageBox(´Usuário Incorreto´,´BibloZero´,0);
DBLookupComboBox1.SetFocus;
end;
end
else
begin
Application.MessageBox(´Preencha a senha´,´BibloZero´,0);
Edit1.clear;
Edit1.SetFocus;
end;
end
else
begin
Application.MessageBox(´Selecione o usuário´,´BibloZero´,0);
DBLookupComboBox1.SetFocus;
end;
Que verifica se o usuario existe [sempre existe é um Lookup!!] e verifica se a senha digitada é do usuário escolhido..
Mas se vc qr criptografia, na hora q o usuario escolhe, manda criptografar, no onexit do edit da tela de senha, criptografa o q ele digtou e compara com o gravado na tabela..
olhae ae a funçao de criptografia
function Criptografia(mStr, mChave: string): string;
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] := chr(posLetra);
end;
end;
OU
implementation
var
s : string[255];
c : array[0..255] of Byte absolute s;
{$R *.DFM}
Agora no evento Onclick do botão Encriptar coloque o código abaixo:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
s:=edit1.text;
For i:=1 to ord(s[0]) do
c[i] := 23 XOr c[i];
Label1.Caption:=s;
end;
E no evento Onclick do botão Desencriptar coloque o código abaixo:
procedure TForm1.Button2Click(Sender: TObject);
var
i:Integer;
begin
s:=Label1.Caption;
For i:=1 to Length(s) do
s[i] := char(23 Xor ord(c[i]));
Label2.Caption:=s;
end;
Blz?
GOSTEI 0
Raimundo Pereira
31/01/2003
Boa , o User Control é uma ferramenta pronta poupa muito tento e irá lhe trazer confiança.
Cadastro de Perfil
Cadastro de Usuário
Alteração de Senha
Acesso a usuário por perfil.
Cadastro de Perfil
Cadastro de Usuário
Alteração de Senha
Acesso a usuário por perfil.
GOSTEI 0