Tutoriales gratuitos para el aprendizaje de la programacion informatica! Recuerda que si lo puedes imaginar... lo puedes programar!

Encriptar Clave VB.NET

Crear y guardar usuario con contraseña encriptada sql/vb.net


En el formulario:

  •  3 TextBox: TXT_USUARIO, TXT_CONTRASEÑA, TXT_CONFIRMAR
  •  1 ComboBox: CBO_NIVEL
  •  7 Label: ID, LABEL_USUARIO, los demas con su nombre de raiz
  •  4 Button: NUEVO, AGREGAR, EDITAR, ACTUALIZAR


Codigo:

Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.Text
Imports System.Security.Cryptography
Public Class Form2
    Dim SQL As String
    Dim SERVIDOR As String = "NOMBRE DEL SERVIDOR"
    Dim BD As String = "BASE DE DATOS"
    Dim USUARIO As String = "USUARIO"
    Dim CONTRASEÑA As String = "CONTRASEÑA"
    Dim VALIDAR_USUARIO As String
    Public SELECCION As String
    Public D_TABLE As DataTable
    Public D_ADAPTER As OleDbDataAdapter
    Public D_SET As DataSet
    Public ORDEN_BD As OleDb.OleDbCommand
    Public CONEXION As New OleDbConnection("Provider=sqloledb;" &
                       "Data Source=" & SERVIDOR & ";" &
                        "Initial Catalog=" & BD & ";" &
                        "User Id=" & USUARIO & ";Password=" & CONTRASEÑA & "")
    Public Function Encriptar(ByVal Input As String) As String
        Dim IV() As Byte = ASCIIEncoding.ASCII.GetBytes("qualityi") 'La clave debe ser de 6 caracteres
        Dim EncryptionKey() As Byte = Convert.FromBase64String("rpaSPvIvVLlrcmtzPU9/c67Gkj7yL1S5") 'No se puede alterar la cantidad de caracteres pero si la clave
        Dim buffer() As Byte = Encoding.UTF8.GetBytes(Input)
        Dim des As TripleDESCryptoServiceProvider = New TripleDESCryptoServiceProvider
        des.Key = EncryptionKey
        des.IV = IV
        Return Convert.ToBase64String(des.CreateEncryptor().TransformFinalBlock(buffer, 0, buffer.Length()))
    End Function
    Sub CONSULTA()
        If TXT_USUARIO.Text = "" Then
            ID.Text = "..."
            TXT_CONTRASEÑA.Text = ""
            TXT_CONFIRMAR.Text = ""
            TXT_CONFIRMAR.Text = ""
            LABEL_USUARIO.Text = "USUARIO NO EXISTENTE"
            CBO_NIVEL.Text = ""
        Else
            CONEXION.Open()
            SQL = "SELECT * FROM USUARIO where " & L_USUARIO.Text & " ='" & SELECCION & "' order by ID"
            ORDEN_BD = New OleDb.OleDbCommand(SQL, CONEXION)
            ORDEN_BD.CommandType = CommandType.Text
            ORDEN_BD.ExecuteNonQuery()
            REM Cierro la CONEXION
            D_ADAPTER = New OleDbDataAdapter(ORDEN_BD)
            D_TABLE = New DataTable
            D_ADAPTER.Fill(D_TABLE)
            Grid.DataSource = D_TABLE
            If D_TABLE.Rows.Count >= 1 Then
                Try
                    ID.Text = D_TABLE.Rows(0)("ID")
                    LABEL_USUARIO.Text = D_TABLE.Rows(0)("USUARIO")
                    TXT_CONTRASEÑA.Text = D_TABLE.Rows(0)("CLAVE")
                    TXT_CONFIRMAR.Text = D_TABLE.Rows(0)("CLAVE")
                    CBO_NIVEL.Text = D_TABLE.Rows(0)("NIVEL")
                    LBL_N.Text = "Contactos Registrados: " & D_TABLE.Rows.Count
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
            Else
                ID.Text = "..."
                TXT_CONTRASEÑA.Text = ""
                TXT_CONFIRMAR.Text = ""
                TXT_CONFIRMAR.Text = ""
                LABEL_USUARIO.Text = "USUARIO NO EXISTENTE"
                CBO_NIVEL.Text = ""
            End If
            CONEXION.Close()
        End If
    End Sub
    Sub ENABLE_TRUE()
        CBO_NIVEL.Enabled = True
        TXT_CONTRASEÑA.Enabled = True
        TXT_CONFIRMAR.Enabled = True
    End Sub
    Sub ENABLE_FALSE()
        CBO_NIVEL.Enabled = False
        TXT_CONTRASEÑA.Enabled = False
        TXT_CONFIRMAR.Enabled = False
    End Sub
    Private Sub NUEVO_Click(sender As Object, e As EventArgs) Handles NUEVO.Click
        If LABEL_USUARIO.Text = "USUARIO NO EXISTENTE" Then
            ACTUALIZAR.Enabled = False
            AGREGAR.Enabled = True
            TXT_CONTRASEÑA.Text = ""
            TXT_CONFIRMAR.Text = ""
            ID.Text = "..."
            TXT_CONTRASEÑA.Select()
            Call ENABLE_TRUE()
        Else
            MsgBox("El Usuario ya existe")
            Call ENABLE_FALSE()
        End If
    End Sub
    Private Sub AGREGAR_Click(sender As Object, e As EventArgs) Handles AGREGAR.Click
        If TXT_USUARIO.Text = "" Then
            MsgBox("Debe indicar el usuario")
            TXT_USUARIO.Select()
        ElseIf TXT_CONTRASEÑA.Text = "" Then
            MsgBox("Debe indicar el contraseña")
            TXT_CONTRASEÑA.Select()
        ElseIf TXT_CONTRASEÑA.Text <> TXT_CONFIRMAR.Text Then
            MsgBox("La contraseña y la confirmacion son diferente, verificar!")
            TXT_CONFIRMAR.Select()
        ElseIf CBO_NIVEL.Text = "" Then
            MsgBox("Debe indicar el nivel del usuario")
        Else
            CONEXION.Open()
            SQL = ("Insert into USUARIO (USUARIO,CLAVE,NIVEL) values ('" &
                                                                        TXT_USUARIO.Text & "','" & Encriptar(TXT_CONTRASEÑA.Text) & "','" & CBO_NIVEL.Text & "')")
            ORDEN_BD = New OleDb.OleDbCommand(SQL, CONEXION)
            ORDEN_BD.CommandType = CommandType.Text
            Try
                ORDEN_BD.ExecuteNonQuery()
                AGREGAR.Enabled = False
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
            CONEXION.Close()
            ACTUALIZAR.Enabled = False
            AGREGAR.Enabled = False
            TXT_USUARIO.Text = ""
            TXT_CONTRASEÑA.Text = ""
            TXT_CONFIRMAR.Text = ""
            Call ENABLE_FALSE()
            ID.Text = "..."
        End If
    End Sub
    Private Sub EDITAR_Click(sender As Object, e As EventArgs) Handles EDITAR.Click
        If LABEL_USUARIO.Text = "USUARIO NO EXISTENTE" Then
            MsgBox("Debe indicar los datos a editar")
            Call ENABLE_FALSE()
            TXT_USUARIO.Select()
        Else
            ACTUALIZAR.Enabled = True
            AGREGAR.Enabled = False
            EDITAR.Enabled = True
            NUEVO.Enabled = True
            Call ENABLE_TRUE()
        End If
    End Sub
    Private Sub ACTUALIZAR_Click(sender As Object, e As EventArgs) Handles ACTUALIZAR.Click
        If TXT_USUARIO.Text = "" Then
            MsgBox("Debe indicar el usuario")
            TXT_USUARIO.Select()
        ElseIf TXT_CONTRASEÑA.Text = "" Then
            MsgBox("Debe indicar el contraseña")
            TXT_CONTRASEÑA.Select()
        ElseIf TXT_CONTRASEÑA.Text <> TXT_CONFIRMAR.Text Then
            MsgBox("La contraseña y la confirmacion son diferente, verificar!")
            TXT_CONFIRMAR.Select()
        ElseIf CBO_NIVEL.Text = "" Then
            MsgBox("Debe indicar el nivel del usuario")
        Else
            Try
                CONEXION.Open()
                SQL = "UPDATE USUARIO SET USUARIO ='" & TXT_USUARIO.Text &
                                          "',CLAVE ='" & Encriptar(TXT_CONTRASEÑA.Text) &
                                          "',NIVEL='" & CBO_NIVEL.Text &
                                          "' WHERE ID=" & ID.Text
                ORDEN_BD = New OleDbCommand(SQL, CONEXION)
                ORDEN_BD.CommandType = CommandType.Text
                ORDEN_BD.ExecuteNonQuery()
                MsgBox("Registro actualizado!")
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
            CONEXION.Close()
            EDITAR.Enabled = True
            NUEVO.Enabled = True
            ACTUALIZAR.Enabled = False
            AGREGAR.Enabled = False
            TXT_USUARIO.Text = ""
            TXT_CONTRASEÑA.Text = ""
            TXT_CONFIRMAR.Text = ""
            CBO_NIVEL.Enabled = False
            TXT_CONTRASEÑA.Enabled = False
            TXT_CONFIRMAR.Enabled = False
            CBO_NIVEL.Enabled = False
            Call CONSULTA()
        End If
    End Sub
    Private Sub TXT_USUARIO_TextChanged(sender As Object, e As EventArgs) Handles       TXT_USUARIO.TextChanged
        SELECCION = TXT_USUARIO.Text
        SELECCION = "" & SELECCION & ""
        Call CONSULTA()
    End Sub

End Class

Resultado:



En la base de datos:





No hay comentarios:

Publicar un comentario