Bom pessoal neste artigo aqui irei disponibilizar iremos criar uma tela de login criptografando as senhas....
Estou utilizando Delphi 2010. Firebird 2.5, componentes de conexão da IBO  ( 2 IBOQUERY (Uma para fazer o cadastro de um novo login e outra para buscar o usuário e a senha para efetuar o login), IB_TRANSACTION, IB_CONNECTION, DATASOURCE)e o componente para criptografar as senhas o JvVigenereCipher!
Não irei mim aprofundar sobre o banco de dados... Faça a conexão com o banco onde nele tenha uma tabela de login com os fields Usuario e Senha... Bem simples o banco só para teste...
 
No Evento OnCreate do formulário:
procedure TForm1.FormCreate(Sender: TObject);
begin
IB_Connection1.Password := 'masterkey';
IB_Connection1.Connect;
IBOQuery1.Open;
end;
 
 
Devemos inserir 3 Edits, 3 Labels e 3 buttons, para que nossa tela  fique como a imagem ao lado!
Devemos configurar o 3º edit e o 3º label com a propriedade visible como false e o btnCadastrarLogin a propriedade Enabled como False.
 
 
Código do Botão Novo
procedure TForm1.btnNovoClick(Sender: TObject);
Var
SenhaAdmin: String;
SenhaDigitada: String;
begin
// Teste de exemplo para liberar cadastro de novo login
SenhaAdmin := 'ADMIN';
SenhaDigitada:= InputBox('Informe a Senha de Administrador', 'Senha:','');

if SenhaDigitada <> SenhaAdmin then begin
   ShowMessage('Senha Admin inválida! Favor procurar administrador do sistema!');
   Exit;
end;
EditUsuario.SetFocus;
Label3.Visible := True;
EditRepitida.Visible := True;
 

Ao clicar no botão novo irá pedir uma senha de Administrador fiz um exemplo apenas para teste onde declarei a váriavel SenhaAdmin := 'ADMIN'; Ao informar a senha ADMIN irá liberar o cadastro de um novo LOGIN podemos melhorar mas isso será um lance mais complexo.


btncadastrarLogin.Enabled := btnNovo.Enabled;
btnNovo.Enabled := False;
end;

Código do Botão Cadastrar
procedure TForm1.btncadastrarLoginClick(Sender: TObject);
Var
ContSenha, ContRepitida: Integer;
begin
// testando se campo Usuário está preenchidos
if EditUsuario.Text = '' then begin
   ShowMessage('Favor informar Usuário!');
   EditUsuario.SetFocus;
   Exit;
end;
// Testando de campo senha está preenchido
if EditSenha.Text = '' then begin
   ShowMessage('Favor informar a senha!');
   EditSenha.SetFocus;
   Exit;
end;
//Testando qtd mínima de caracteres em uma senha
ContSenha := (Length(EditSenha.Text));
ContRepitida := (Length(EditRepitida.Text));
  if (ContSenha) or (ContRepitida) < 5  then begin
     ShowMessage('Senha deve ter no mínimo 6 caracteres!');
     EditSenha.SetFocus;
     Exit;
  end;
  // Testando se as senhas são compatíveis
  if EditSenha.Text <> EditRepitida.Text then begin
     ShowMessage('Senhas não compatíveis!');
     EditSenha.SetFocus;
     Exit;
  end;
  // Obrigatorio para uma criptografia
  JvVigenereCipher1.Key := 'Thiago'; /// chave
  JvVigenereCipher1.Decoded := EditSenha.Text;
  Result := JvVigenereCipher1.Encoded;   // Exibe a string encriptada
  IBOQuery1.Append;
  IBOQuery1.FieldByName('USUARIO').AsString := EditUsuario.Text;
  IBOQuery1.FieldByName('SENHA').AsString := JvVigenereCipher1.Encoded;
  IBOQuery1.Post;
  IBOQuery1.IB_Transaction.CommitRetaining;
  ShowMessage('Login Cadastrado com sucesso!');
end;
No Botão cadastrar fiz alguns teste como se o usuário e senhas foram informados, se a senha é maior que 5 caracteres e se as senhas são compatíveis a Senha do cadastro e o campo de repetição de senha. Após isso utilizei uma query para gravar os campos usuário e senha no banco.
 
 
Código do Botão Acessar
procedure TForm1.btnAcessarClick(Sender: TObject);
Var
SenhaCrip : String;
Usuario : String;
Result : String;
begin
JvVigenereCipher1.Key := 'Thiago';
JvVigenereCipher1.Decoded := EditSenha.Text;
Result := JvVigenereCipher1.Encoded;   // Exibe a string encriptada
usuario := EditUsuario.Text;
IBOQuery2.Close;
IBOQuery2.SQL.Add('Select USUARIO, SENHA FROM LOGIN WHERE USUARIO = ' + QuotedStr(EditUsuario.Text));
IBOQuery2.Open;
if ((Usuario = IBOQuery2.FieldByName('USUARIO').AsString)) and ((Result = IBOQuery2.FieldByName('SENHA').AsString)) then
   begin
   ShowMessage('Login Efetuado com sucesso!');
   IBOQuery2.SQL.Clear;
   end
   else begin
   ShowMessage('Usuário e/ou Senha inválido!');
   IBOQuery2.SQL.Clear;
end;
end;
 
No botão acessar utilizei o componente JvVigenereCipher para criptografar a senha onde informei uma key de teste utilizando meu nome como key encriptografei, logo depois utilizei uma query para buscar o usuário informado e comparei se a senha informada que foi criptografada é igual a senha gravada no banco que támbem encontra-se criptografa.
 
É galera é isso aí galera espero que tenham gostado! Dicas , sugestões e críticas serão bem vindas...
Pois ainda sou iniciante nesta área...