comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[VB2010] Algoritmo encryptacion AES

  • 9 Respuestas
  • 7046 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado noxonsoftwares

  • *
  • Underc0der
  • Mensajes: 243
  • Actividad:
    3.33%
  • Reputación 2
  • Ayudar es Crecer, Crecer es Mejorar
    • Ver Perfil
    • NOXONSOFTWARES
  • Skype: noxonsoftwares
« en: Septiembre 29, 2012, 06:59:13 pm »
Bueno como mi primer aporte les traigo este algoritmo de encriptacion AES el cual funciona de la siguiente manera:

Para encriptar es necesario introducir una contraseña, la cual servira posteriormente para desencriptar lo que esta encriptado (facil no? )

Bueno sin mas vueltas aqui el algoritmo.

Código: vb.net
  1. 'Encriptacion en AES con contraseña para poder ver lo encritado
  2.     'Se encripta y se le asigna una contraseña para poder ver el texto desencriptado
  3.     'Para desencriptar pide que se ingrese la contraseña, si esta es incorrecta no muestra nada.
  4.  
  5.     Public Function AES_Encrypt(ByVal input As String, ByVal pass As String) As String
  6.         Dim AES As New System.Security.Cryptography.RijndaelManaged
  7.         Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
  8.         Dim encrypted As String = ""
  9.         Try
  10.             Dim hash(31) As Byte
  11.             Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
  12.             Array.Copy(temp, 0, hash, 0, 16)
  13.             Array.Copy(temp, 0, hash, 15, 16)
  14.             AES.Key = hash
  15.             AES.Mode = Security.Cryptography.CipherMode.ECB
  16.             Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor
  17.             Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(input)
  18.             encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
  19.             Return encrypted
  20.         Catch ex As Exception
  21.         End Try
  22.     End Function
  23.  
  24.     Public Function AES_Decrypt(ByVal input As String, ByVal pass As String) As String
  25.         Dim AES As New System.Security.Cryptography.RijndaelManaged
  26.         Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
  27.         Dim decrypted As String = ""
  28.         Try
  29.             Dim hash(31) As Byte
  30.             Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
  31.             Array.Copy(temp, 0, hash, 0, 16)
  32.             Array.Copy(temp, 0, hash, 15, 16)
  33.             AES.Key = hash
  34.             AES.Mode = Security.Cryptography.CipherMode.ECB
  35.             Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor
  36.             Dim Buffer As Byte() = Convert.FromBase64String(input)
  37.             decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
  38.             Return decrypted
  39.         Catch ex As Exception
  40.         End Try
  41.     End Function


Ejemplo de uso con dos buttons y dos textbox

Código: vb.net
  1.  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         TextBox2.Text = AES_Encrypt(TextBox1.Text, No tienes permisos para ver links. Registrate o Entra con tu cuenta("ingrese la contraseña"))
  3.     End Sub
  4.  
  5.  
  6.  
  7.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  8.         TextBox1.Text = AES_Decrypt(TextBox2.Text, No tienes permisos para ver links. Registrate o Entra con tu cuenta("ingrese la contraseña"))
  9.     End Sub
« Última modificación: Mayo 27, 2014, 09:51:25 pm por Expermicid »

Desconectado zoro248

  • *
  • Underc0der
  • Mensajes: 242
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #1 en: Septiembre 29, 2012, 11:00:40 pm »
Se ve muy interesante, lastima que no trabajo en visual, no se podria usar en C#?? son .net los dos,

gracias por el aporte

Conectado noxonsoftwares

  • *
  • Underc0der
  • Mensajes: 243
  • Actividad:
    3.33%
  • Reputación 2
  • Ayudar es Crecer, Crecer es Mejorar
    • Ver Perfil
    • NOXONSOFTWARES
  • Skype: noxonsoftwares
« Respuesta #2 en: Septiembre 30, 2012, 03:33:21 pm »
El codigo en C# seria el siguiente:


Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
//Encriptacion en AES con contraseña para poder ver lo encritado
//Se encripta y se le asigna una contraseña para poder ver el texto desencriptado
//Para desencriptar pide que se ingrese la contraseña, si esta es incorrecta no muestra nada.

public string AES_Encrypt(string input, string pass)
{
System.Security.Cryptography.RijndaelManaged AES = new System.Security.Cryptography.RijndaelManaged();
System.Security.Cryptography.MD5CryptoServiceProvider Hash_AES = new System.Security.Cryptography.MD5CryptoServiceProvider();
string encrypted = "";
try {
byte[] hash = new byte[32];
byte[] temp = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass));
Array.Copy(temp, 0, hash, 0, 16);
Array.Copy(temp, 0, hash, 15, 16);
AES.Key = hash;
AES.Mode = System.Security.Cryptography.CipherMode.ECB;
System.Security.Cryptography.ICryptoTransform DESEncrypter = AES.CreateEncryptor();
byte[] Buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(input);
encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length));
return encrypted;
} catch (Exception ex) {
}
}

public string AES_Decrypt(string input, string pass)
{
System.Security.Cryptography.RijndaelManaged AES = new System.Security.Cryptography.RijndaelManaged();
System.Security.Cryptography.MD5CryptoServiceProvider Hash_AES = new System.Security.Cryptography.MD5CryptoServiceProvider();
string decrypted = "";
try {
byte[] hash = new byte[32];
byte[] temp = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass));
Array.Copy(temp, 0, hash, 0, 16);
Array.Copy(temp, 0, hash, 15, 16);
AES.Key = hash;
AES.Mode = System.Security.Cryptography.CipherMode.ECB;
System.Security.Cryptography.ICryptoTransform DESDecrypter = AES.CreateDecryptor();
byte[] Buffer = Convert.FromBase64String(input);
decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length));
return decrypted;
} catch (Exception ex) {
}
}

Un saludo y mira en esta pagina puedes convertir de VB a C# o viceversa   No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado zoro248

  • *
  • Underc0der
  • Mensajes: 242
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Octubre 01, 2012, 12:14:05 pm »
Gracias por responder :), esta interesante la pagina que me pasaste, :D :D

Conectado noxonsoftwares

  • *
  • Underc0der
  • Mensajes: 243
  • Actividad:
    3.33%
  • Reputación 2
  • Ayudar es Crecer, Crecer es Mejorar
    • Ver Perfil
    • NOXONSOFTWARES
  • Skype: noxonsoftwares
« Respuesta #4 en: Octubre 01, 2012, 12:34:31 pm »
De nada @Zorro dejame que busco tambien existe un programa de escritorio que te permite hacer lo mismo que la pagina pero ahora no recuerdo donde lo tenia ni como se llama  :-[

Desconectado @NetFcruz

  • *
  • Underc0der
  • Mensajes: 40
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Diciembre 22, 2012, 01:09:35 pm »
Hey bro ese programa es excellente ahora me centro ams en esto y me encanta.
Saludos noxon.
:D
System32
XD
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado romulomeirelles

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #6 en: Junio 05, 2016, 04:49:04 pm »
Solamente no acepta caracteres especiales. :( ejemplo: (ÇÁÀÜÑ) e otros! Ayuadame

Desconectado Kr3L

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #7 en: Junio 22, 2016, 05:23:22 am »
Me gusto mucho tu aporte +1, recien lo estaba probando y me va bien la encriptacion pero lo que no me va es la desencriptacion.

Saludos.
Hola, soy Kr3L !

Desconectado PikachuDorado

  • *
  • Underc0der
  • Mensajes: 370
  • Actividad:
    0%
  • Reputación 1
  • Im just a Pikachu
    • Ver Perfil
    • Soporte Ava
« Respuesta #8 en: Agosto 19, 2016, 11:04:40 am »
@No tienes permisos para ver links. Registrate o Entra con tu cuenta - Sabes que estoy probando el sistema que hiciste, y funciona. Me da un hash md5, pero a la hora de probar el mismo hash con otras paginas usando el mismo sistema

AES - ECB del Rijndael. Me dicen todos que la clave esta mal (la que yo mismo ingreso), esta corrupto o el codigo de encriptacion esta rancio.

Estoy haciendo algo mal? O el sistema es para usar por si mismo, en el sentido de tu sistema de encriptacion no es el miso que los demas?

Me podrias orientar?

De todas formas sos un genio!
Pikaa~


Desconectado 79137913

  • *
  • Co Admin
  • Mensajes: 634
  • Actividad:
    6.67%
  • Reputación 11
  • 4 Esquinas
    • Ver Perfil
    • Doors.Party
    • Email
  • Skype: fg_mdq@hotmail.com
« Respuesta #9 en: Agosto 19, 2016, 12:56:51 pm »
HOLA!!!

Aqui la funcion decrypt que uso yo.
Código: vb.net
  1.  
  2. Imports System.Security.Cryptography
  3. Public Function DecryptRJ256(ByVal prm_key As String, ByVal prm_iv As String, ByVal prm_text_to_decrypt As String)
  4.  
  5.         Dim sEncryptedString As String = prm_text_to_decrypt
  6.  
  7.         Dim myRijndael As New RijndaelManaged
  8.         myRijndael.Padding = PaddingMode.Zeros
  9.         myRijndael.Mode = CipherMode.CBC
  10.         myRijndael.KeySize = 256
  11.         myRijndael.BlockSize = 256
  12.  
  13.         Dim key() As Byte
  14.         Dim IV() As Byte
  15.  
  16.         key = System.Text.Encoding.ASCII.GetBytes(prm_key)
  17.         IV = System.Text.Encoding.ASCII.GetBytes(prm_iv)
  18.  
  19.         Dim decryptor As ICryptoTransform = myRijndael.CreateDecryptor(key, IV)
  20.  
  21.         Dim sEncrypted As Byte() = Convert.FromBase64String(sEncryptedString)
  22.  
  23.         Dim fromEncrypt() As Byte = New Byte(sEncrypted.Length) {}
  24.  
  25.         Dim msDecrypt As New MemoryStream(sEncrypted)
  26.         Dim csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)
  27.  
  28.         csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length)
  29.  
  30.         Return (System.Text.Encoding.ASCII.GetString(fromEncrypt))
  31.  
  32.     End Function
  33.  

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scout Team*                                                   No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!