Cuestión : VB6 a la función del decrypt del convertido de VB.NET

hola cada uno, necesito ayuda convertir el código VB6. Soy nuevo en VB.Net programming.
This soy el código vb6; class= " lineNumbers " >
1 del >

thanks

El público declara la liberación “advapi32.dll” alias “CryptAcquireContextA” de CryptAcquireContext de la función (el _
phProv como de largo, pszContainer de ByVal como de largo, pszProvider de ByVal como secuencia, _
dwProvType de ByVal como dwFlags de largo, de ByVal como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptCreateHash de la función (hProv de ByVal como de largo, el _
ByVal álgido como hKey de largo, de ByVal como dwFlags de largo, de ByVal como de largo, phHash como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptHashData de la función (hHash de ByVal como de largo, el _
El pbData como secuencia, ByVal de ByVal dwDataLen como dwFlags de largo, de ByVal como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptDeriveKey de la función (el _
hProv de ByVal como de largo, ByVal álgido como de largo, hBaseData de ByVal como de largo, dwFlags de ByVal como de largo, _
phKey como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptDestroyHash de la función (hHash de ByVal como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptDestroyKey de la función (hKey de ByVal como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptEncrypt de la función (hKey de ByVal como de largo, el _
hHash de ByVal como de largo, final de ByVal como de largo, dwFlags de ByVal como de largo, pbData de ByVal como secuencia, _
pdwDataLen como de largo, ByVal dwBufLen como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptDecrypt de la función (hKey de ByVal como de largo, el _
hHash de ByVal como de largo, final de ByVal como de largo, dwFlags de ByVal como de largo, pbData de ByVal como secuencia, _
pdwDataLen como de largo) como de largo

El público declara la liberación “advapi32.dll” de CryptReleaseContext de la función (hProv de ByVal como de largo, el _
dwFlags de ByVal como de largo) como de largo

El público declara la liberación “kernel32” de GetLastError de la función () como de largo

'constantes para las funciones del API de la criptografía
Const privado CRYPT_NEWKEYSET = &H8
Const privado MS_DEF_PROV = “Microsoft Base Cryptographic Provider v1.0”
Const privado PROV_RSA_FULL = 1
Const privado ALG_CLASS_DATA_ENCRYPT = 24576
Const privado ALG_CLASS_HASH = 32768

Const privado ALG_TYPE_ANY = 0
Const privado ALG_TYPE_BLOCK = 1536
Const privado ALG_TYPE_STREAM = 2048

Const privado ALG_SID_RC2 = 2

Const privado ALG_SID_RC4 = 1
Const privado ALG_SID_SHA1 = 4
Const privado ALG_SID_MD5 = 3
Const privado CALG_SHA1 = ((ALG_CLASS_HASH o ALG_TYPE_ANY) o ALG_SID_SHA1)
Const privado CALG_MD5 = ((ALG_CLASS_HASH o ALG_TYPE_ANY) o ALG_SID_MD5)
Const privado CALG_RC2 = ((ALG_CLASS_DATA_ENCRYPT o ALG_TYPE_BLOCK) o ALG_SID_RC2)
Const privado CALG_RC4 = ((ALG_CLASS_DATA_ENCRYPT o ALG_TYPE_STREAM) o ALG_SID_RC4)

Const privado ENCRYPT_ALGORITHM = CALG_RC2
Const privado ENCRYPT_BLOCK_SIZE = 1

Const privado CRYPT_EXPORTABLE = 1

'especificaban para no utilizar ningún valor de la sal mientras que derivaba la llave
Const privado CRYPT_NO_SALT como de largo = &H10

Función privada CryptoDecrypt (sInputBuffer como secuencia, sPassword como sErrore de la secuencia, de ByRef como secuencia) como secuencia
lHExchgKey dévil como de largo
lHCryptprov dévil como de largo
lHHash dévil como de largo
lHkey dévil como de largo
lResult dévil como de largo

sProvider dévil como secuencia

sCryptBuffer dévil como secuencia
Dévil lCryptBufLen como de largo
Amortiguar el lCryptPoint como de largo

Amortiguar el lPasswordPoint como de largo
Amortiguar el lPasswordCount como de largo

   En el error DecryptError indicado
   
   'conseguir la manija al defecto CSP.
   sProvider = vbNullChar
   sProvider = MS_DEF_PROV y vbNullChar
   Si no CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) Entonces
      'Si no hay envase de la llave de defecto después crea uno usar campo de las banderas
      Si GetLastError = 0 entonces
         Si no CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Entonces
              Finished indicado
         Terminar si
      Terminar si
   Terminar si
   
   'Crear un objeto del picadillo
   Si no CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) Entonces
         Finished indicado
   Terminar si
   
   'Desmenuzar en el texto de la contraseña
   Si no CBool (CryptHashData (lHHash, sPassword, Len (sPassword), 0)) Entonces
         Finished indicado
   Terminar si
   
   'Crear una llave de sesión del objeto del picadillo
   Si no CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) Entonces
         Finished indicado
   Terminar si
   
   'Destruir el objeto del picadillo.
   CryptDestroyHash (lHHash)
   lHHash = 0
   
   'Preparar el sCryptBuffer para CryptDecrypt
   lCryptBufLen = Len (el sInputBuffer)
   sCryptBuffer = secuencia (lCryptBufLen, vbNullChar)
   sCryptBuffer = sInputBuffer de LSet
   
   'Datos del Decrypt
   Si no CBool (CryptDecrypt (el lHkey, 0, 1, 0, el sCryptBuffer, lCryptBufLen)) Entonces
         Finished indicado
   Terminar si
   
   'Fijar el almacenador intermediario de salida con apenas datos descifrados
   CryptoDecrypt = mediados de (el sCryptBuffer, 1, lCryptBufLen)
   
Finished:
   
   'Destruir la llave de sesión
   Si (lHkey) entonces lResult = CryptDestroyKey (lHkey)
   
   'Destruir la manija dominante de la llave del intercambio
   Si lHExchgKey entonces CryptDestroyKey (lHExchgKey)
   
   'Destruir el objeto del picadillo
   Si lHHash entonces CryptDestroyHash (lHHash)
   
   'Lanzar la manija del abastecedor del contexto
   Si lResult del lHCryptprov entonces = CryptReleaseContext (lHCryptprov, 0)
   
   Salir la función
   
DecryptError:
   msgbox (GetLastError)

Class= > " claro " del extremo Function
class= del

Respuesta : VB6 a la función del decrypt del convertido de VB.NET

“Cuál es la manera correcta de definir las funciones del API?”

Según lo indicado previamente, cambiar todos “de largo” al “número entero”.

Por ejemplo, primer de:

    El público declara la liberación “advapi32.dll” alias “CryptAcquireContextA” de CryptAcquireContext de la función (el _
        phProv como de largo, pszContainer de ByVal como de largo, pszProvider de ByVal como secuencia, _
        dwProvType de ByVal como dwFlags de largo, de ByVal como de largo) como de largo

Se convierte esto:


    El público declara la liberación “advapi32.dll” alias “CryptAcquireContextA” de CryptAcquireContext de la función (el _
        phProv como número entero, pszContainer de ByVal como número entero, pszProvider de ByVal como secuencia, _
        dwProvType de ByVal como dwFlags del número entero, de ByVal como número entero) como número entero

¡Estar seguro de cambiar las variables locales también!

Tan esta línea:

    lHExchgKey dévil como de largo

Se convirtió:

    lHExchgKey dévil como número entero
Otras soluciones  
 
programming4us programming4us