begin
IB_Connection1.Password := 'masterkey';
IB_Connection1.Connect;
IBOQuery1.Open;
end;
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;
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;
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;
Pois ainda sou iniciante nesta área...