Encriptar/Desencriptar cadenas en VB y VB.Net

Estaba pensando que segun yo, mi blog es de todo tema que me guste o me llame la atención.

Y la programación es lo que me da para comprar las cheves los fines de semana y cotorrear con Vanessa. Es lo que hago un 80% del dia y no escribo nada de eso. Al grano pues.

Me he fijado que en varios sistemas usan un archivito de texto donde toma los datos para hacer la cadena de conexion a la base de datos, nosotros usamos un archivo .mdb (Access) para el sistema en Vb. En vb.net uso una clase que compilo en una dll y asi no ven los datos, eso es muccho mas seguro aún.

Me pidieron -cosa que se debió hacer desde el inicio del desarrollo- que incriptara los datos que tenimos en la basesita de Access, lo hice con las siguientes funcioncitas:

'Encrypt text
Public Function EncryptText(strText As String, ByVal strPwd As String)
Dim i As Integer, C As Integer
Dim strBuff As String

strPwd = UCase$(strPwd)

'Encrypt string
If Len(strPwd) Then
For i = 1 To Len(strText)
C = Asc(Mid$(strText, i, 1))
C = C + Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1))
strBuff = strBuff & Chr$(C And &HFF)
Next i
Else
strBuff = strText
End If
EncryptText = strBuff
End Function

'Decrypt text encrypted with EncryptText
Public Function DecryptText(strText As String, ByVal strPwd As String)
Dim i As Integer, C As Integer
Dim strBuff As String

strPwd = UCase$(strPwd)

'Decrypt string
If Len(strPwd) Then
For i = 1 To Len(strText)
C = Asc(Mid$(strText, i, 1))
C = C - Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1))
strBuff = strBuff & Chr$(C And &HFF)
Next i
Else
strBuff = strText
End If
DecryptText = strBuff
End Function

La función recibe 2 parametros: la cadena a encriptar/desencriptar, y la password o la llave de encriptamiento. Esta muy facilillo y las probamos tambien para VB.Net. Espero que algun dia a alguien le sirva de algo este post.

Sale.

12 Comentarios del post “Encriptar/Desencriptar cadenas en VB y VB.Net”

  • davemm says:

    “En vb.net uso una clase que compilo en una dll y asi no ven los datos” …podrías explicar como se hace esto? …necesito encriptar el user y pswd del MySQL dentro de “algo”, y que mi aplicacion lea ese “algo” y desencripte los datos que necesita.

  • jorge says:

    Puedes usar algun algoritmo de encriptacion, como el RC2

  • rusbe says:

    bueno checare y espero me funcione
    pos la verdad soy pricipiante en eso y me dejaron un problemita asi como el tuyo pero espero y si sirva

    gracias por el aporte

  • estefano says:

    esta es una solucion de encryptador y desencriptador en .net
    estuve chekando su error y pude corregirlo es excelente……

    Imports System.Security.Cryptography
    Imports System.IO
    Imports System.Text
    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    EncryptText(TextBox1.Text, “hola”)
    End Sub
    ‘Encrypt text
    Public Function EncryptText(ByVal strText As String, ByVal strPwd As String)
    Dim i As Integer, C As Integer
    Dim strBuff As String

    strPwd = UCase$(strPwd)

    ‘Encrypt string
    If Len(strPwd) Then
    For i = 1 To Len(strText)
    C = Asc(Mid$(strText, i, 1))
    C = C + Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1))
    strBuff = strBuff & Chr(C And &HFF)
    Next i
    Else
    strBuff = strText
    End If
    EncryptText = strBuff
    textbox3.text = strBuff
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
    ‘Decrypt text encrypted with EncryptText
    Public Function DecryptText(ByVal strText As String, ByVal strPwd As String)
    Dim i As Integer, C As Integer
    Dim strBuff As String

    strPwd = UCase$(strPwd)

    ‘Decrypt string
    If Len(strPwd) Then
    For i = 1 To Len(strText)
    C = Asc(Mid$(strText, i, 1))
    C = C – Asc(Mid$(strPwd, (i Mod Len(strPwd)) + 1, 1))
    strBuff = strBuff & Chr(C And &HFF)
    Next i
    Else
    strBuff = strText
    End If
    DecryptText = strBuff
    TextBox4.Text = strBuff
    End Function

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    DecryptText(TextBox3.Text, “hola”)
    End Sub
    End Class

    use la palabra hola como la llave de encriptado y desencriptado si desean pueden cambiar la llave por los caracteres o palabras q deseen tanto como cadenas hexadecimales para hacerlo mas seguro.

    ojo : ambas llaves de encryptado y desencryptado deben de ser totalmente iguales

  • alexabc says:

    hola a todos megustaria saber si alguien me puede ayudar con un ejemplo que encontre es una agenda la cosa es que esta conectada a Acces y la quiero conectar a SQL lo que quiero es tener el ejemplo que sale ahi con usuarios y Roles ademas que encripta alguien queme ayude a pasarla a SQL porfavorrr

  • AlexR26 says:

    Qué buen aporte compañero, se agradece, realmente me ha servido de mucha ayuda, te felicito man. Saludos

  • Morjuax says:

    Si muy buen aporte me sirvio perfecto tuve que cambiar unas cositas pero me sirvio…GRACIAS..!

  • melvin says:

    Excelente te felicito…. Gracias!!!

  • Diego says:

    Hola me sirvio pero me guataria q me ayudes, la cadena q me retorna tiene ‘ o ” y al ejecutar mi insert me da errores, porfa ayudame

  • Anónimo says:

    Porqué tenéis tantas faltas de ortografía, da vergüenza leeros.

    “me guataría”, “basesita”, “checando”.

    A parte, te explicas fatal, vaya porquería de expresiones.

    Hala, sigue con tu blog y con tu basura de algoritmos.

    Se dice contraseña, password es en inglés.

  • asuarez777 says:

    Hola, excelente algoritmo, me ha sido de gran ayuda.
    Suerte,

  • Ronald says:

    Muy bueno, ademas es mejor que el System.Security.Cryptography por que este no se necesita almacenar en memoria…

Deja un comentario de este post