Esta es una clase, para encriptar la informacion, la encriptación no usa un algoritmo muy elevado, pero funciona bien.
Pegen esto en un modulo de clase(*.cls), con el nombre ClsEncrypt
Código:'Set Encripta = New cEncrypt 'sResultado = Encripta.ConvertirClave(CadenaxDesencriptar, sClave, False) 'False=desencriptar, True =Encriptar Option Explicit Public Enum eEncrypt eDesencriptar = 0 eEncriptar = 1 End Enum Private m_Accion As eEncrypt ' Variable privadas para las propiedades Private m_sOriginal As String Private m_sClave As String Private Const mc_sClave As String = "123456" ' Si se debe devolver error al fallar en la asignación ' por defecto es True Private m_RaiseError As Boolean Public Function ConvertirClave(Optional ByVal sOriginal As String = "", _ Optional ByVal sClave As String = "", _ Optional vAccion As Variant) As String Dim LenOri As Long Dim LenClave As Long Dim i As Long, j As Long Dim cO As Long, cC As Long Dim k As Long Dim v As String ' Si no se especifican los parámetros, ' se usarán los valores de las propiedades If Len(sOriginal) = 0 Then _ sOriginal = m_sOriginal If Len(sClave) = 0 Then _ sClave = m_sClave ' Si se especifica el último parámetro, If Not IsMissing(vAccion) Then ' usar nuestra propiedad para convertir el valor Me.Accion = vAccion End If LenOri = Len(sOriginal) LenClave = Len(sClave) v = Space$(LenOri) i = 0& For j = 1 To LenOri i = i + 1 If i > LenClave Then i = 1 End If cO = Asc(Mid$(sOriginal, j, 1)) cC = Asc(Mid$(sClave, i, 1)) If m_Accion Then k = cO + cC If k > 255 Then k = k - 255 End If Else k = cO - cC If k < 0 Then k = k + 255 End If End If Mid$(v, j, 1) = Chr$(k) Next ConvertirClave = v End Function Public Function DesEncriptar(Optional ByVal sOriginal As String = "", _ Optional ByVal sClave As String = "") As String ' Esta es una función que llamará directamente a ConvertirClave ' m_Accion = eDesencriptar DesEncriptar = ConvertirClave(sOriginal, sClave) End Function Public Function Encriptar(Optional ByVal sOriginal As String = "", _ Optional ByVal sClave As String = "") As String ' Esta es una función que llamará directamente a ConvertirClave ' m_Accion = eEncriptar Encriptar = ConvertirClave(sOriginal, sClave) End Function Public Property Get CadenaOriginal() As String CadenaOriginal = m_sOriginal End Property Public Property Let CadenaOriginal(ByVal NewValue As String) ' Sólo asignar si la cadena tiene algún contenido If Len(NewValue) Then m_sOriginal = NewValue Else ' Devolver un error, si así se ha indicado If m_RaiseError Then With Err .Description = "Se debe asignar algún contenido a la cadena a encryptar / desencriptar" .Number = 13 .Source = "cEncrypt::CadenaOriginal" .Raise .Number End With End If End If End Property Public Property Get Clave() As String Clave = m_sClave End Property Public Property Let Clave(ByVal NewValue As String) ' Sólo asignar si la cadena tiene algún contenido If Len(NewValue) Then m_sClave = NewValue Else ' Devolver un error, si así se ha indicado If m_RaiseError Then With Err .Description = "Se debe asignar algún contenido a la cadena a usar como clave para encriptar / desencriptar" .Number = 13 .Source = "cEncrypt::Clave" .Raise .Number End With Else ' Si no, devolver el valor por defecto m_sClave = mc_sClave End If End If End Property Private Sub Class_Initialize() ' Por defecto devolver error m_RaiseError = True ' Clave por defecto m_sClave ="Jamec" ' Por defecto se encriptará m_Accion = eEncriptar End Sub Public Property Get RaiseError() As Boolean RaiseError = m_RaiseError End Property Public Property Let RaiseError(ByVal NewValue As Boolean) m_RaiseError = NewValue End Property Public Property Get Accion() As eEncrypt Accion = m_Accion End Property Public Property Let Accion(ByVal NewValue As eEncrypt) ' Si el valor indicado es 0 será Descencriptar, ' si es cualquier otro valor, será encriptar ' De esta forma se aceptarán valores boolenos If NewValue = 0 Then m_Accion = eDesencriptar Else m_Accion = eEncriptar End If End Property
Para usarla utilizan:
Edited by: JamecCódigo:Dim Encripta As New ClsEncrypt TextoEnc = Encripta.ConvertirClave(Texto, Clave, True)'encriptar TextoEnc = Encripta.ConvertirClave(Texto, txtClave, False) 'Desencriptar

LinkBack URL
About LinkBacks
Citar