Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/12/2012, 20:08
Avatar de MaLkAvIaN_NeT
MaLkAvIaN_NeT
 
Fecha de Ingreso: marzo-2005
Ubicación: trujillo
Mensajes: 141
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Envio peticion y encriptacion

Los métodos de descripción más seguros son los unilaterales, es decir, que sólo sirven para encriptar. Para utilizarlos debes encriptar la clave ingresada por el usuario y comparar con el texto encriptado en la base de datos.

.NET tiene funciones de encriptación basadas en md5, sha1, triple_des, bluefish.

Un ejemplo de uso:

Código:
    Public Enum AlgoritmoDeEncriptacion
        MD5 = 0
        SHA = 1
        TRIPLE_DESC
    End Enum

    Public Function encriptar(ByVal valAlgoritmo As AlgoritmoDeEncriptacion, ByVal strCadena As String, Optional ByVal valIV As Byte = 0, Optional ByVal valKey As Byte = 0) As String

        Dim Codificacion As New UTF8Encoding

        Select Case valAlgoritmo

            Case AlgoritmoDeEncriptacion.MD5
                Dim md5Hasher As MD5 = MD5.Create()
                Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(strCadena))
                Dim sBuilder As New StringBuilder
                Dim i As Integer
                For i = 0 To data.Length - 1
                    sBuilder.Append(data(i).ToString("x2"))
                Next i
                Return sBuilder.ToString()

            Case AlgoritmoDeEncriptacion.SHA
                Dim data() As Byte = Codificacion.GetBytes(strCadena)
                Dim resultado() As Byte
                Dim sha As New SHA1CryptoServiceProvider
                resultado = sha.ComputeHash(data)
                Dim sb As New StringBuilder
                For i As Integer = 0 To resultado.Length - 1
                    If resultado(i) < 16 Then
                        sb.Append("0")
                    End If
                    sb.Append(resultado(i).ToString("x"))
                Next
                Return sb.ToString() '<-

            Case AlgoritmoDeEncriptacion.TRIPLE_DESC

                Dim message As Byte() = Codificacion.GetBytes(strCadena)
                Dim criptoProvider As New TripleDESCryptoServiceProvider
                Dim criptoTransform As ICryptoTransform = criptoProvider.CreateEncryptor(criptoProvider.Key, criptoProvider.IV)
                Dim memorystream As New MemoryStream
                Dim cryptoStream As New CryptoStream(memorystream, criptoTransform, CryptoStreamMode.Write)
                cryptoStream.FlushFinalBlock()
                Dim encriptado As Byte() = memorystream.ToArray
                Dim cadenaEncriptada As Object = Codificacion.GetString(encriptado)
                Return cadenaEncriptada

            Case Else
                Return ""
        End Select

    End Function
__________________
www.tecfactory.com