elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Traducir función desde .NET a VB6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Traducir función desde .NET a VB6  (Leído 1,846 veces)
ProgramadorVB

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Traducir función desde .NET a VB6
« en: 24 Junio 2010, 09:53 am »

Hola amigos,

Espero me puedan ayudar con lo siguiente...
Tengo una función para cifrar y descifrar en 128bits... pero en .NET y necesito tenerla en VB6... alguien me puede ayudar con esto???

Necesito que alguien me ayude, alguien que maneje bien .Net... ya que yo uso pobremente solo VB6... tanto no entiendo...

Desde ya muchas gracias!!!!
 

Código:
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.Diagnostics;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace Proyecto1
{
    public class clsEncryption
    {

        public string EncryptString128Bit(string vstrTextToBeEncrypted, string vstrEncryptionKey)
        {
            string str1;

            bool flag = modConstants.ENCRYPTION > 0 == false;
            if (flag)
            {
                str1 = vstrTextToBeEncrypted;
            }
            else
            {
                byte[] bs2 = new byte[]{121, 241, 17, 1, 132, 74, 11, 37, 253, 91, 45, 78, 29, 211, 22, 61};
                MemoryStream memoryStream = new MemoryStream();
                vstrTextToBeEncrypted = StripNullCharacters(vstrTextToBeEncrypted);
                byte[] bs4 = Encoding.ASCII.GetBytes(vstrTextToBeEncrypted.ToCharArray());
                int i = Strings.Len(vstrEncryptionKey);
                flag = i < 32 == false;
                if (flag)
                {
                    vstrEncryptionKey = Strings.Left(vstrEncryptionKey, 32);
                }
                else
                {
                    i = Strings.Len(vstrEncryptionKey);
                    int j = 32 - i;
                    vstrEncryptionKey = String.Concat(vstrEncryptionKey, Strings.StrDup(j, "T"));
                }
                byte[] bs3 = Encoding.ASCII.GetBytes(vstrEncryptionKey.ToCharArray());
                RijndaelManaged rijndaelManaged = new RijndaelManaged();
                string str2 = "";
                try
                {
                    CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateEncryptor(bs3, bs2), CryptoStreamMode.Write);
                    cryptoStream.Write(bs4, 0, (int)bs4.Length);
                    cryptoStream.FlushFinalBlock();
                    byte[] bs1 = memoryStream.ToArray();
                    cryptoStream.Close();
                    str2 = Convert.ToBase64String(bs1);
                }
                catch (Exception e)
                {
                    str2 = "";
                }
                memoryStream.Close();
                str1 = str2;
            }
            return str1;
        }

        public string DecryptString128Bit(string vstrStringToBeDecrypted, string vstrDecryptionKey)
        {
            string str1;

            bool flag = modConstants.ENCRYPTION > 0 == false;
            if (flag)
            {
                str1 = vstrStringToBeDecrypted;
            }
            else
            {
                byte[] bs3 = new byte[]{121, 241, 17, 1, 132, 74, 11, 37, 253, 91, 45, 78, 29, 211, 22, 61};
                RijndaelManaged rijndaelManaged = new RijndaelManaged();
                string str2 = String.Empty;
                byte[] bs1 = Convert.FromBase64String(vstrStringToBeDecrypted);
                int i = Strings.Len(vstrDecryptionKey);
                flag = i < 32 == false;
                if (flag)
                {
                    vstrDecryptionKey = Strings.Left(vstrDecryptionKey, 32);
                }
                else
                {
                    i = Strings.Len(vstrDecryptionKey);
                    int j = 32 - i;
                    vstrDecryptionKey = String.Concat(vstrDecryptionKey, Strings.StrDup(j, "T"));
                }
                byte[] bs2 = Encoding.ASCII.GetBytes(vstrDecryptionKey.ToCharArray());
                byte[] bs4 = new byte[(int)bs1.Length + 1];
                MemoryStream memoryStream = new MemoryStream(bs1);
                try
                {
                    CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateDecryptor(bs2, bs3), CryptoStreamMode.Read);
                    cryptoStream.Read(bs4, 0, (int)bs4.Length);
                    cryptoStream.Flush();
                    cryptoStream.Close();
                }
                catch (Exception e)
                {
                }
                memoryStream.Close();
                str1 = StripNullCharacters(Encoding.ASCII.GetString(bs4));
            }
            return str1;
        }

        private string StripNullCharacters(string vstrStringWithNulls)
        {
            bool flag;

            int i = 1;
            string str2 = vstrStringWithNulls;
            do
            {
                i = Strings.InStr(i, vstrStringWithNulls, "\0", CompareMethod.Binary);
                flag = i > 0;
                if (flag)
                {
                    str2 = String.Concat(Strings.Left(str2, i - 1), Strings.Right(str2, Strings.Len(str2) - i));
                }
                flag = i > str2.Length;
                if (flag)
                {
                    break;
                }
IL_004d:
                flag = i > 0;
            }
            while (flag);
            string str1 = str2;
            return str1;
        }
    }

}

 
Un saludooo!!!

PD: estoy intentando resolverlo... pero se me hace dificil... soy de controles, no de algoritmos avanzados... pero lo bueno es que pude encontrar ésta página en portgues... que aclara un poco...
http://www.devmedia.com.br/post-3112-Criptografia-de-Dados-128-Bits.html

Igualmente, les agradezco por una ayuda, de antemano... de paso este ejemplo para .NET y VB6 quedará aquí...



« Última modificación: 24 Junio 2010, 10:37 am por ProgramadorVB » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Será posible traducir idiomas sobre la marcha por voz desde el móvil
Noticias
wolfbcn 0 1,295 Último mensaje 24 Octubre 2012, 17:30 pm
por wolfbcn
Ayuda para traducir una función anónima de C# a VBNET
.NET (C#, VB.NET, ASP)
Eleкtro 1 2,392 Último mensaje 4 Junio 2013, 20:13 pm
por Eleкtro
Obtener URL del traductor de Google para traducir desde programa
Desarrollo Web
Lekim 5 3,058 Último mensaje 23 Julio 2016, 18:13 pm
por Adrialmend
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines