VB 6 - Exemplo de Login e gerenciamento de usuários com Hash de senhas
Este programa mostra um exemplo de como acessar um banco de dados Microsoft Access e realizar a autenticação de usuário conferindo seu login e senha.
Estamos usando um módulo - mdlGlobal - para definir as variáveis globais e para realizar o acesso ao banco de dados Microsoft Access:
Option Explicit Public NomeUsuario As String Public DBConn As ADODB.Connection Public LogInUserID As Long, LogInUserName As String Public Function LoadDatabase(ByVal DatabaseName As String, Optional ByVal UserID As String, Optional ByVal Password As String) As ADODB.Connection Dim conData As ADODB.Connection Set conData = New ADODB.Connection conData.Provider = "Microsoft.Jet.OLEDB.4.0" conData.ConnectionString = "Data Source = " & DatabaseName conData.CursorLocation = adUseClient conData.Open , UserID, Password Set LoadDatabase = conData End Function Public Function SelectNewID(Cn As ADODB.Connection, ByVal TableName As String, Optional ByVal IDFieldName As String = "ID") As Long Dim Request As String, RS As ADODB.Recordset Dim NewID As Long Request = "SELECT MAX(" & IDFieldName & ") FROM " & TableName Set RS = Cn.Execute(Request) If RS Is Nothing Then NewID = 1 Else If RS.RecordCount = 0 Then NewID = 1 Else RS.MoveFirst If IsNull(RS.Fields(0).value) Then NewID = 1 Else NewID = CLng(RS.Fields(0).value) + 1 End If End If End If SelectNewID = NewID End Function |
Antes de gravar a senha no banco de dados o programa usa a classe clsMD5 para gerar um Hash da senha de forma que a informação fica muito mais segura pois se alguém conseguir acessar o banco de dados terá que decifrar o hash das senhas.
Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando um nibble cada. O conceito teórico diz que "hash é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações". http://pt.wikipedia.org/wiki/Hash |
A princípio não existe nenhum usuário cadastrado na tabela e neste caso no primeiro acesso da aplicação será apresentada a tela de gerenciamento de usuários:
Usando este formulário podemos cadastrar um novo usuário ou atualizar a senha de um usuário cadastrado bastando apenas clicar duas vezes sobre o usuário existente no controle ListView:
Se o usuário selecionado for diferente do usuário atualmente logado será solicitado a informação da senha anterior.
Quando existir um usuário cadastrado, ao acessar a aplicação será apresentada a tela de login:
E se o login for feito com sucesso será apresentada a tela principal do programa:
Dessa forma você pode aprender a como fazer o login usando o Visual Basic com acesso a dados, como usar Classes no VB6 e como gerar um hash para proteger informações importantes.
Simples e funcional como só o Visual Basic 6 consegue ser...
Eu sei é apenas Visual Basic mas eu gosto...
Pegue o projeto completo aqui: LoginExemplo.zip
Mar 2:15
Ora, estando Jesus à mesa em casa de Levi, estavam também ali reclinados com ele e seus discípulos muitos publicanos e pecadores; pois eram em grande número e o seguiam.Mar 2:16
Vendo os escribas dos fariseus que comia com os publicanos e pecadores, perguntavam aos discípulos: Por que é que ele como com os publicanos e pecadores?Mar 2:17
Jesus, porém, ouvindo isso, disse-lhes: Não necessitam de médico os sãos, mas sim os enfermos; eu não vim chamar justos, mas pecadores.Referências: