Trabalhando com senhas criptografadas. Alguém sabe?

Delphi

14/10/2003

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.


Elias Jr

Elias Jr

Curtidas 0

Respostas

Luis.soft

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


GOSTEI 0
Elias Jr

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

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

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.


GOSTEI 0
Elias Jr

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...


GOSTEI 0
POSTAR