Foros del Web » Programación para mayores de 30 ;) » .NET »

Envio peticion y encriptacion

Estas en el tema de Envio peticion y encriptacion en el foro de .NET en Foros del Web. Buenos días/tardes/noches, quería preguntarles si podian enviarme algun ejemplo de encriptacion sencilla-avanzada en Visual Basic.net, que la encriptacion fuera mediante una contraseña, y tambien les ...
  #1 (permalink)  
Antiguo 15/09/2012, 15:08
 
Fecha de Ingreso: febrero-2012
Ubicación: null
Mensajes: 6
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta Envio peticion y encriptacion

Buenos días/tardes/noches, quería preguntarles si podian enviarme algun ejemplo de encriptacion sencilla-avanzada en Visual Basic.net, que la encriptacion fuera mediante una contraseña, y tambien les queria pedir un manual y algunos ejemplos de envio de peticiones php utilizando el metodo post, y que los parametros se definieran entre varios textbox
Saludos y gracias
  #2 (permalink)  
Antiguo 05/12/2012, 16:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 61
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Envio peticion y encriptacion

Que tal amigo, saludos, en cuanto a la encriptación te puedo ayudar con las siguientes funciones.
Las hice hace algún tiempo y encripta en AES (Advanced Encryption Standard), lo que hace una funcion es encriptar y la otra desencriptar, una cadena de texto con el método AES, requiere de 2 llaves 1 pública o vector que debe ser de 16 posiciones (puede ir hardcoded o embebida en tu código sin ningún problema) y la llave privada (que es la que deberan de ingresar) que debe ser forzosamente de 32 posiciones; para lo cual te adjunto el código para crear un hash MD5 que crea dicho texto a 32 posiciones a partir de un texto de cualquier número de caracteres, las funciones estan documentadas y explicadas pero si tienes alguna duda, puedes preguntarme

nota: el numero de posiciones por lo que entiendo, son por cuestiones del estandar

Código vb:
Ver original
  1. ''' <summary>
  2.    ''' Encripta una cadena de texto mediante el método AES (rijndael)
  3.    ''' </summary>
  4.    ''' <param name="Texto">Cadena de texto a encriptar de tipo String  </param>
  5.    ''' <param name="Key">Llave Privada de tipo String, con la cual se encripatrá el texto; debe de tener sólo 32 Posiciones (Se recomienda usar Hashing MD5)</param>
  6.    ''' <param name="Vector"> Llave Publica de tipo String , con la cual se encripatrá el texto; debe tener sólo 16 Posiciones </param>
  7.    ''' <param name="Err">Variable Opcional Tipo String Por Referencia, que nos permite obtener los errores al encriptar si es que los hubiera  </param>
  8.    Public Function Encriptar(ByVal Texto As String, ByVal Key As String, ByVal Vector As String, Optional ByRef Err As String = "") As String
  9.         Try
  10.             Dim BKey, BVector As Byte()
  11.             BKey = Encoding.ASCII.GetBytes(CrearHashMD5(Key)) 'llave de 32 Posiciones convertido a byte
  12.            BVector = Encoding.ASCII.GetBytes(Vector)         'Vector de 16 Posiciones convertido a byte
  13.  
  14.             Dim inputBytes As Byte() = Encoding.ASCII.GetBytes(Texto)
  15.             Dim encripted As Byte()
  16.             Dim cripto As New RijndaelManaged
  17.  
  18.             Using ms As New MemoryStream(inputBytes.Length)
  19.                 Using objCryptoStream As New CryptoStream(ms, cripto.CreateEncryptor(BKey, BVector), CryptoStreamMode.Write)
  20.                     objCryptoStream.Write(inputBytes, 0, inputBytes.Length)
  21.                     objCryptoStream.FlushFinalBlock()
  22.                     objCryptoStream.Close()
  23.                 End Using
  24.                 encripted = ms.ToArray()
  25.             End Using
  26.  
  27.             Return Convert.ToBase64String(encripted)
  28.         Catch ex As Exception
  29.             Err = "Error al encriptar: " & ex.Message
  30.         End Try
  31.         Return ""
  32.  
  33.     End Function
  34.     ''' <summary>
  35.    ''' Desencripta una cadena de texto mediante el método AES (rijndael)
  36.    ''' </summary>
  37.    ''' <param name="inputText">Cadena de texto a desencriptar de tipo String  </param>
  38.    ''' <param name="Key">Llave Privada de tipo String, con la cual se desencripatrá el texto; debe de tener sólo 32 Posiciones (Se recomienda usar Hashing MD5)</param>
  39.    ''' <param name="Vector"> Llave Publica de tipo String , con la cual se desencripatrá el texto; debe tener sólo 16 Posiciones </param>
  40.    ''' <param name="Err">Variable Opcional Tipo String Por Referencia, que nos permite obtener los errores al encriptar si es que los hubiera  </param>
  41.    Public Function Desencriptar(ByVal inputText As String, ByVal Key As String, ByVal Vector As String, Optional ByRef Err As String = "") As String
  42.         Try
  43.             Dim BKey, BVector As Byte()
  44.             BKey = Encoding.ASCII.GetBytes(CrearHashMD5(Key))       'llave de 32 Posiciones convertido a byte
  45.            BVector = Encoding.ASCII.GetBytes(Vector)               'Vector de 16 Posiciones convertido a byte
  46.            Dim inputBytes As Byte() = Convert.FromBase64String(inputText)
  47.             Dim resultBytes As Byte() = New Byte(inputBytes.Length - 1) {}
  48.             Dim CadDesencriptada As String = [String].Empty
  49.             Dim cripto As New RijndaelManaged()
  50.             Using ms As New MemoryStream(inputBytes)
  51.                 Using objCryptoStream As New CryptoStream(ms, cripto.CreateDecryptor(BKey, BVector), CryptoStreamMode.Read)
  52.                     Using sr As New StreamReader(objCryptoStream, True)
  53.                         CadDesencriptada = sr.ReadToEnd()
  54.                     End Using
  55.                 End Using
  56.             End Using
  57.             Return CadDesencriptada
  58.         Catch ex As Exception
  59.             Err = "Error al desencriptar: " & ex.Message
  60.         End Try
  61.         Return ""
  62.     End Function
  63.     ''' <summary>
  64.    ''' Devuelve un valor tipo String del HASH MD5 de una cadena de entrada
  65.    ''' </summary>
  66.    ''' <param name="Texto">Cadena de texto de la cual se generará el Hash MD5</param>
  67.    Public Function CrearHashMD5(ByVal Texto As String) As String
  68.         'Crea un objeto codificado, para asegurar la codificación estandar del texto origen
  69.        Dim ASCIIenc As New ASCIIEncoding
  70.         Dim strReturn
  71.         'Recupera un arreglo de bites basados en el texto origen
  72.        Dim ByteSourceText() As Byte = ASCIIenc.GetBytes(Texto)
  73.         'Instancia el objeto proveedor de MD5
  74.        Dim Md5Hash As New MD5CryptoServiceProvider
  75.         'Computa el valor hash de valor origen
  76.        Dim ByteHash() As Byte = Md5Hash.ComputeHash(ByteSourceText)
  77.         'Ciclo para convertir el ByteHash resultante a cadena
  78.        For Each b As Byte In ByteHash
  79.             'Convierte Bytes a cadena
  80.            strReturn &= b.ToString("x2")
  81.         Next
  82.         'Regresa el hash MD5
  83.        Return strReturn
  84.     End Function

y estos son ejemplos de su uso
Código vb:
Ver original
  1. Encriptar("Hola", 12345678901234561234567890123456, 1234567890123456, Me.LblErrores.Text)
  2.  
  3. Desencriptar("(cadena encriptada)", 12345678901234561234567890123456, 1234567890123456, Me.LblErrores.Text)

Recuerda ambas devuelven un valor string
  #3 (permalink)  
Antiguo 05/12/2012, 16:37
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Envio peticion y encriptacion

Cita:
y tambien les queria pedir un manual y algunos ejemplos de envio de peticiones php utilizando el metodo post
Querrás decir a un servicio PHP. Porque si quieres enviar desde PHP estás en el Foro incorrecto.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #4 (permalink)  
Antiguo 05/12/2012, 20:08
Avatar de MaLkAvIaN_NeT  
Fecha de Ingreso: marzo-2005
Ubicación: trujillo
Mensajes: 141
Antigüedad: 19 años
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

Etiquetas: encriptacion, peticion, textbox, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:15.