Trabalhando com senhas criptografadas. Alguém sabe?
Saudações,
é o seguinte: estou trabalhando em um sistema que possui um form de login antes do principal. Gostaria de saber como eu faço para que ao digitar a senha no edit esta apareça criptografada ou com os asteriscos. Eu tenho um exemplo de criptografia mas o texto é digitado num edit e exibido em outro, eu queria fazer em apenas um. Alguém pode ajudar? Caso possa auxiliar vai aí o código do meu exemplo:
Criptografa o texto em um edit e exibe o resultado em outro
procedure TForm1.Button1Click(Sender: TObject);
var tp, tc : string;
chave : byte;
i : integer;
begin
tc:=EmptyStr;
tp := edtCesarTp.Text;
chave := byte(strtoint(edtCesarCH.Text)); // {Nessa parte eu posso colocar a chave num edit pro usuário escolher ou posso por no código chave := byte(número); sem precisar do edit}
for i:=1 to length(tp) do
begin
tc := tc + chr( ord( tp [i] ) + chave );
end;
edtCesarTc.Text := tc;
end;
Se alguém aí puder ajudar agradeço. Muito obrigado.
é o seguinte: estou trabalhando em um sistema que possui um form de login antes do principal. Gostaria de saber como eu faço para que ao digitar a senha no edit esta apareça criptografada ou com os asteriscos. Eu tenho um exemplo de criptografia mas o texto é digitado num edit e exibido em outro, eu queria fazer em apenas um. Alguém pode ajudar? Caso possa auxiliar vai aí o código do meu exemplo:
Criptografa o texto em um edit e exibe o resultado em outro
procedure TForm1.Button1Click(Sender: TObject);
var tp, tc : string;
chave : byte;
i : integer;
begin
tc:=EmptyStr;
tp := edtCesarTp.Text;
chave := byte(strtoint(edtCesarCH.Text)); // {Nessa parte eu posso colocar a chave num edit pro usuário escolher ou posso por no código chave := byte(número); sem precisar do edit}
for i:=1 to length(tp) do
begin
tc := tc + chr( ord( tp [i] ) + chave );
end;
edtCesarTc.Text := tc;
end;
Se alguém aí puder ajudar agradeço. Muito obrigado.
Elias Jr
Curtidas 0
Respostas
Luis.soft
14/10/2003
Olá !
Caro Amigo, se compreendi corretamente sua pergunta, para que vc coloque os Asteriscos quando for digitada uma senha em um Edit, selecione o edit, e localize a propriedade ´PassChar´. O padrão do Delphi é 0#. Basta colocar * nesta propriedade que cada caractere digitado será substituído por este caracter, ou outro que deseje.
Espero ter ajudado !
Luis Henrique
Analista Desenvolvimento Sistemas
Caro Amigo, se compreendi corretamente sua pergunta, para que vc coloque os Asteriscos quando for digitada uma senha em um Edit, selecione o edit, e localize a propriedade ´PassChar´. O padrão do Delphi é 0#. Basta colocar * nesta propriedade que cada caractere digitado será substituído por este caracter, ou outro que deseje.
Espero ter ajudado !
Luis Henrique
Analista Desenvolvimento Sistemas
GOSTEI 0
Elias Jr
14/10/2003
Olá !
Caro Amigo, se compreendi corretamente sua pergunta, para que vc coloque os Asteriscos quando for digitada uma senha em um Edit, selecione o edit, e localize a propriedade ´PassChar´. O padrão do Delphi é 0#. Basta colocar * nesta propriedade que cada caractere digitado será substituído por este caracter, ou outro que deseje.
Espero ter ajudado !
Luis Henrique
Analista Desenvolvimento Sistemas
Saudações Luis,
olha a sua dica ajudou e muito(não sei porque raios não olhei essa propriedade), só que ele acusa como se a senha fosse diferente da que a gente registrou...é o seguinte eu pus uma rotina que se a senha fosse igual a da tabela o form principal abriria e, senão, uma mensagem de erro apareceria ams ele está fazendo ao contrário. Pode me dar uma dica? Valeu
GOSTEI 0
Elias Jr
14/10/2003
Saudações, eu de novo, descobri que o sistema só identifica senhas registradas com caracteres e não com números. Mesmo que a senha tenha apenas um número ele acusa a mensagem de erro. Como faço pra que ele identifique tanto senhas com caracteres quanto senhas com números. Muito obrigado.
GOSTEI 0
Lbsystems
14/10/2003
Ex: Form1, com sua unit1...
Crie uma nova unit e chame de: unit func.pas
Nessa unit você escreve o código abaixo:
unit UnitFunc.;
interface
function Codificar (Armazena: string; Chave: integer): string;
function Decodificar (Armazena: string; Chave: integer): string;
implementation
function Codificar (Armazena: string; Chave: integer): string;
var
Resultado: String;
Temporario: char;
I, CodificaIndex: integer;
begin
Resultado := ´´;
Temporario := ´ ´ ; // Tem que ter um espaço,porque a
// Variável é do tipo Char.
for I := 1 to Length(Armazena) do
begin
for CodificaIndex := 1 to Chave do
begin
Temporario := Succ (Armazena[I]);
Armazena[I] := Temporario;
end;
Resultado := Resultado + Temporario;
end;
Codificar := Resultado;
end;
//////////////////////////////////////////////////////////////
//////////////////// Função Decodificar///////////////////////
function Decodificar (Armazena: string; Chave: integer): string;
var
Resultado: String;
Temporario: char;
I, DecodificaIndex: integer;
begin
Resultado := ´´;
Temporario := ´ ´ ;
for I := 1 to length(Armazena) do
begin
for DecodificaIndex := 1 to Chave do
begin
Temporario := Pred (Armazena[I]);
Armazena[I] := Temporario;
end;
Resultado := Resultado + Temporario;
end;
Decodificar := Resultado;
end;
end.
___________________________________________________________
Na unit1, inclua a unitFunc na cláusula Uses...
Um abraçao
Leo.
Crie uma nova unit e chame de: unit func.pas
Nessa unit você escreve o código abaixo:
unit UnitFunc.;
interface
function Codificar (Armazena: string; Chave: integer): string;
function Decodificar (Armazena: string; Chave: integer): string;
implementation
function Codificar (Armazena: string; Chave: integer): string;
var
Resultado: String;
Temporario: char;
I, CodificaIndex: integer;
begin
Resultado := ´´;
Temporario := ´ ´ ; // Tem que ter um espaço,porque a
// Variável é do tipo Char.
for I := 1 to Length(Armazena) do
begin
for CodificaIndex := 1 to Chave do
begin
Temporario := Succ (Armazena[I]);
Armazena[I] := Temporario;
end;
Resultado := Resultado + Temporario;
end;
Codificar := Resultado;
end;
//////////////////////////////////////////////////////////////
//////////////////// Função Decodificar///////////////////////
function Decodificar (Armazena: string; Chave: integer): string;
var
Resultado: String;
Temporario: char;
I, DecodificaIndex: integer;
begin
Resultado := ´´;
Temporario := ´ ´ ;
for I := 1 to length(Armazena) do
begin
for DecodificaIndex := 1 to Chave do
begin
Temporario := Pred (Armazena[I]);
Armazena[I] := Temporario;
end;
Resultado := Resultado + Temporario;
end;
Decodificar := Resultado;
end;
end.
___________________________________________________________
Na unit1, inclua a unitFunc na cláusula Uses...
Um abraçao
Leo.
GOSTEI 0
Elias Jr
14/10/2003
Saudações Leo,
esse exemplo que você me passou serve para apenas um edit? Tipo logo ao se digitar no edit já sai o resultado criptografado? Por que este é o meu problema...se vc puder me ajudar te agradeço...
esse exemplo que você me passou serve para apenas um edit? Tipo logo ao se digitar no edit já sai o resultado criptografado? Por que este é o meu problema...se vc puder me ajudar te agradeço...
GOSTEI 0