Bases de Datos > MS Access
ENDURESER LA SEGURIDAD DE BD
(1/1)
kasq:
mi area de trabajo es:
Ms Visula Studio 2005 professional edition - .NET Framework 2.0.50727
REALIZE UNA CONEXION A UNA BASE DE DATOS EN ACCESS 2003 CON "Provider=Microsoft.Jet.OLEDB.4.0"
ComprUEBO EL usuario y clave usando La base de datos Y ME RESULTA PERFECTA.
QUISIERA ENDUREZER LA SEGURIDAD DE ACCESO A LA MISMA DESDE VS 2005 ENCRIPTANDO LA CONTRASEÑA DEL USUARIO CUANDO ESTE PASE POR LA FORMA DE LOGIN.
este es la adaptacion del codigo que he hecho asta el momento
--- Código: Text ---Imports System.Windows.FormsImports System.DrawingImports System.DataImports System.Data.OleDbPublic Class frmInicio Private veces As Integer = 0 Private Const NumeroIntentos As Integer = 3 Private cadenaCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=transporte.mdb" Private Sub btnACEPTAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnACEPTAR.Click 'If TxtClave.Text = "911" Then If ComprobarUsuario(txtNICK.Text, txtCLAVE.Text) Then 'Dim claveSHA As String = Me.generarClaveSHA1(Me.TxtClave.Text) 'If ComprobarUsuario(Me.TxtUsuario.Text, claveSHA) Then Me.DialogResult = Windows.Forms.DialogResult.OK 'Form1.Show() Else veces = veces + 1 If veces < NumeroIntentos Then Label3.Text = "Quedan " & (NumeroIntentos - veces) & " intentos" Exit Sub End If Me.DialogResult = Windows.Forms.DialogResult.No End If Hide() End Sub Private Sub btnSALIR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSALIR.Click Me.DialogResult = Windows.Forms.DialogResult.Cancel Hide() End Sub Private Function ComprobarUsuario( _ ByVal IDUsuario As String, _ ByVal IDContraseña As String) As Boolean Dim cnn As OleDbConnection = Nothing ' Try cnn = New OleDbConnection(cadenaCnn) cnn.Open() Dim sel As New System.Text.StringBuilder sel.Append("SELECT COUNT (*) FROM Usuarios ") sel.Append("WHERE IDUsuario = @IDUsuario AND IDContraseña = @IDContraseña") Dim cmd As New OleDbCommand(sel.ToString, cnn) cmd.Parameters.Add("@IDUsuario", OleDbType.VarChar, 50) cmd.Parameters.Add("@IDContraseña", OleDbType.VarChar, 40) cmd.Parameters("@IDUsuario").Value = IDUsuario cmd.Parameters("@IDContraseña").Value = IDContraseña Dim t As Integer = CInt(cmd.ExecuteScalar()) cnn.Close() If t = 0 Then Return False End If Catch ex As Exception MessageBox.Show("ERROR al conectar a la base de datos: " & vbCrLf & _ ex.Message, "Comprobar usuario", MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) Return False Finally If Not cnn Is Nothing Then cnn.Dispose() End If End Try Return True End Functionend class
RadicalEd:
Utiliza la clase System.Security.Cryptography
--- Código: Visual Basic ---Imports Microsoft.VisualBasicImports System.Security.CryptographyImports System.IO Public Class CommonFunctions2 Public Shared Function MD5Encrypt(ByVal str As String) As String 'Imports System.Security.Cryptography Dim md5 As MD5CryptoServiceProvider Dim bytValue() As Byte Dim bytHash() As Byte Dim strOutput As String Dim i As Integer ' Create New Crypto Service Provider Object md5 = New MD5CryptoServiceProvider ' Convert the original string to array of Bytes bytValue = System.Text.Encoding.UTF8.GetBytes(str) ' Compute the Hash, returns an array of Bytes bytHash = md5.ComputeHash(bytValue) md5.Clear() For i = 0 To bytHash.Length - 1 'don't lose the leading 0 strOutput &= bytHash(i).ToString("x").PadLeft(2, "0") Next MD5Encrypt = strOutput End FunctionEnd Class Extraida de techinterviews
Navegación
Ir a la versión completa