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