Métodos para Encriptar y Desencriptar Vb.Net
En esta oportunidad presentamos 2 métodos para proteger los datos en sus desarrollos. Los métodos contienen una llave escrita en duro «qualityi» que es la que nos permite Encriptar y luego Desencriptar nuestros datos, si las llaves no coinciden no podrán utilizar ambos métodos por lo que es recomendable manejar esta llave como una variable global.
referencias
Imports System.Text
Imports System.Security.Cryptography
Método de Encriptación
Public Function Encriptar(ByVal Input As String) As String Dim IV() As Byte = ASCIIEncoding.ASCII.GetBytes("qualityi")'La clave debe ser de 8 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
Método de Desencriptación
Public Function Desencriptar(ByVal Input As String) As String Dim IV() As Byte = ASCIIEncoding.ASCII.GetBytes("qualityi") 'La clave debe ser de 8 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 = Convert.FromBase64String(Input) Dim des As TripleDESCryptoServiceProvider = New TripleDESCryptoServiceProvider des.Key = EncryptionKey des.IV = IV Return Encoding.UTF8.GetString(des.CreateDecryptor().TransformFinalBlock(buffer, 0, buffer.Length())) End Function
Saludos
como llamo a la función encriptar
Como puedo aumentar la cantidad de caracteres encriptados
El método es genérico por lo tanto no puedes variar el resultado sin afectar el funcionamiento.
Excelente aporte Victor. Me sirvió.
Muchas gracias me has salvado pues mañana hay examen
Lo primero es guardar ambos métodos en una clase por ejemplo puedes llamarla Util.
entonces en el evento onclick, puedes hacer lo siguiente
Dim dialog = New FolderBrowserDialog()
Dim encriptado As String
dialog.SelectedPath = «C:\Prueba»
dialog.Description = «Seleccione directorio»
If (dialog.ShowDialog() = DialogResult.OK) Then
encriptado = Util.Encriptar(dialog.SelectedPath)
End If
Donde encriptado tiene el valor que necesitas, no le asigno funcionalidad ya que tu sabes para que lo usaras, luego puedes tomar este mismo valor y aplicarle la funcion Desencriptar.
Saludos
hola amigo y gracias por responder pero creo que no me di a entender bien lo que necesito es una boton que al darle click te despliege la ventanita para elegir el directorio y ya una ves seleccionado por el usuario lo encripte y ya otro boton que lo desencripte
ya intente usar el FolderBrowserDialog.SelectedPath pero no abre la ventana y cuando por fin la abrio y selecione el directorio de prueba no me asigno la ruta a la bariable (directorio) ademas me gustaria que la bariable se quede asi permanentemente para que no sea necesario volver a elegir el directorio
Me podrias generarme el codigo del boton Y GRACIAS disculpa las molestia jejejeje
🙂
Si necesitas encriptar solo la ruta del directorio utilizando la ventana correspondiente debería ser string directorio = Clase.Encriptar(FolderBrowserDialog.SelectedPath);
Saludos
como aplico el metodo a un boton para que encripte un directorio claro obiamente abriendo una bentana para que sea seleccionado el directorio si alguien pude aydarme se lo agradeseria es que llevo con este problema ya 4 dias y ya es un dolor de dabeza GRACIAS!!!
AYUDA NECESITO SABER EL PROCESO DE ESTA FORMULA DE VISUAL BASIC:
clave: Abs (Mid(1089583396).value,1,3)*789
Rpta. Clave : 85212
Necesito saber cual es el proceso para llegar a la respuesta.
Estimado creo que la función esta mal hecha ya que la función mid (Devuelve una cadena que a su vez contiene un número especificado de caracteres de una cadena) acepta como parámetros un string, y requiere al menos un parámetro de inicio.
La función Mid debería quedar así = Mid(«1089583396»,1,3) o Mid((1089583396).ToString(),1,3) lo cual retornaría 108
Luego la función abs pertenece a la librería Math y es un método estático por lo cual debería quedar asi Math.Abs(Mid(«1089583396»,1,3)) Asumiendo que el resultado de la primera es 108 quedaría de la siguiente manera Math.Abs(108), donde abs obtiene el valor absoluto osea 108.
Para finalizar multiplicas este valor por 789 y el resultado es = 85212.
Saludos
Una pregunta la contraseña debe ser solo 8 caracteres ni mas ni menos?
Según las pruebas que realice si varias el largo de la contraseña no funciona correctamente.
He visto animaladas, pero como la de Javier me agueváz!! jajajajaja…. Yo quiero saber si va a llover el 24 de diciembre del 2078, alguien me puede ayudar?
hola gente necesito ayuda necesito desencriptar este mensaje
$1$b9b7fe7d39f3de43b42bc5e03388bf22
Lo sentimos pero esta pagina no esta orientada a realizar ese tipo de ayuda.
Saludos
me sirvió gracias
A mi parecer poner como palabra clave la palabra a cifrar no es una buena opción debido a que al estar cifrada con el tiempo se puede olvidar la palabra cifrada y eso ocasionaría que descifrarla se vuelva un verdadero dolor de cabeza.
Pues esa es la idea… ¿o para qué son las contraseñas?
La respuesta anterior hace alusión al peligro de poner la misma palabra como llave, seria un dolor de cabeza tratar de desencriptarlo. Saludos
Truco; Para evitar que les averigüen la palabra clave, dejen el mismo texto que van a encriptar como palabra clave. Si dejan una misma palabra como palabra clave para todas las encriptaciones, es mas fácil, que se las averigüen.