Pergunta : VB6 à função do decrypt do converso de VB.NET

olá! todos, eu preciso a ajuda de converter o código VB6. Eu sou novo em VB.Net programming.
This sou o código vb6; class= " lineNumbers " >
1 do >

thanks

O público declara o liberal “advapi32.dll” aliás “CryptAcquireContextA” de CryptAcquireContext da função (o _
phProv como por muito tempo, pszContainer de ByVal como por muito tempo, pszProvider de ByVal como a corda, _
dwProvType de ByVal como dwFlags por muito tempo, de ByVal como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptCreateHash da função (hProv de ByVal como por muito tempo, o _
ByVal álgido como o hKey por muito tempo, de ByVal como dwFlags por muito tempo, de ByVal como por muito tempo, phHash como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptHashData da função (hHash de ByVal como por muito tempo, o _
O pbData como a corda, ByVal de ByVal dwDataLen como dwFlags por muito tempo, de ByVal como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptDeriveKey da função (o _
hProv de ByVal como por muito tempo, ByVal álgido como por muito tempo, hBaseData de ByVal como por muito tempo, dwFlags de ByVal como por muito tempo, _
phKey como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptDestroyHash da função (hHash de ByVal como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptDestroyKey da função (hKey de ByVal como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptEncrypt da função (hKey de ByVal como por muito tempo, o _
hHash de ByVal como por muito tempo, final de ByVal como por muito tempo, dwFlags de ByVal como por muito tempo, pbData de ByVal como a corda, _
pdwDataLen como por muito tempo, ByVal dwBufLen como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptDecrypt da função (hKey de ByVal como por muito tempo, o _
hHash de ByVal como por muito tempo, final de ByVal como por muito tempo, dwFlags de ByVal como por muito tempo, pbData de ByVal como a corda, _
pdwDataLen como por muito tempo) como por muito tempo

O público declara o liberal “advapi32.dll” de CryptReleaseContext da função (hProv de ByVal como por muito tempo, o _
dwFlags de ByVal como por muito tempo) como por muito tempo

O público declara o liberal “kernel32” de GetLastError da função () como por muito tempo

'constantes para funções do API da criptografia
Const confidencial CRYPT_NEWKEYSET = &H8
Const confidencial MS_DEF_PROV = “Microsoft Base Cryptographic Provider v1.0”
Const confidencial PROV_RSA_FULL = 1
Const confidencial ALG_CLASS_DATA_ENCRYPT = 24576
Const confidencial ALG_CLASS_HASH = 32768

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

Const confidencial ALG_SID_RC2 = 2

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

Const confidencial ENCRYPT_ALGORITHM = CALG_RC2
Const confidencial ENCRYPT_BLOCK_SIZE = 1

Const confidencial CRYPT_EXPORTABLE = 1

'usou-se para especific para não usar nenhum valor de sal ao derivar a chave
Const confidencial CRYPT_NO_SALT como por muito tempo = &H10

Função confidencial CryptoDecrypt (sInputBuffer como a corda, sPassword como o sErrore da corda, do ByRef como a corda) como a corda
lHExchgKey não ofuscante como por muito tempo
lHCryptprov não ofuscante como por muito tempo
lHHash não ofuscante como por muito tempo
lHkey não ofuscante como por muito tempo
lResult não ofuscante como por muito tempo

sProvider não ofuscante como a corda

sCryptBuffer não ofuscante como a corda
Não ofuscante lCryptBufLen como por muito tempo
Escurecer o lCryptPoint como por muito tempo

Escurecer o lPasswordPoint como por muito tempo
Escurecer o lPasswordCount como por muito tempo

   No erro DecryptError empreendedores
   
   'começ o punho ao defeito CSP.
   sProvider = vbNullChar
   sProvider = MS_DEF_PROV & vbNullChar
   Se não CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) Então
      'Se não há nenhum recipiente da chave de defeito a seguir cria um using o campo das bandeiras
      Se GetLastError = 0 então
         Se não CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Então
              Finished empreendedores
         Terminar se
      Terminar se
   Terminar se
   
   'Criar um objeto da mistura
   Se não CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) Então
         Finished empreendedores
   Terminar se
   
   'Picar no texto da senha
   Se não CBool (CryptHashData (lHHash, sPassword, Len (sPassword), 0)) Então
         Finished empreendedores
   Terminar se
   
   'Criar uma chave de sessão do objeto da mistura
   Se não CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) Então
         Finished empreendedores
   Terminar se
   
   'Destruir o objeto da mistura.
   CryptDestroyHash (lHHash)
   lHHash = 0
   
   'Preparar o sCryptBuffer para CryptDecrypt
   lCryptBufLen = Len (o sInputBuffer)
   sCryptBuffer = corda (lCryptBufLen, vbNullChar)
   sCryptBuffer = sInputBuffer de LSet
   
   'Dados do Decrypt
   Se não CBool (CryptDecrypt (o lHkey, 0, 1, 0, o sCryptBuffer, lCryptBufLen)) Então
         Finished empreendedores
   Terminar se
   
   'Setup o amortecedor de saída com apenas dados descifrados
   CryptoDecrypt = meados de (o sCryptBuffer, 1, lCryptBufLen)
   
Finished:
   
   'Destruir a chave de sessão
   Se (lHkey) então lResult = CryptDestroyKey (lHkey)
   
   'Destruir o punho chave da chave da troca
   Se lHExchgKey então CryptDestroyKey (lHExchgKey)
   
   'Destruir o objeto da mistura
   Se lHHash então CryptDestroyHash (lHHash)
   
   'Liberar o punho do fornecedor do contexto
   Se lResult do lHCryptprov então = CryptReleaseContext (lHCryptprov, 0)
   
   Retirar a função
   
DecryptError:
   msgbox (GetLastError)

Class= > " desobstruído " da extremidade Function
class= do

Resposta : VB6 à função do decrypt do converso de VB.NET

“O que é a maneira correta de definir as funções do API?”

Como indic previamente, mudar tudo “por muito tempo” ao “inteiro”.

Por exemplo, primeiro de:

    O público declara o liberal “advapi32.dll” aliás “CryptAcquireContextA” de CryptAcquireContext da função (o _
        phProv como por muito tempo, pszContainer de ByVal como por muito tempo, pszProvider de ByVal como a corda, _
        dwProvType de ByVal como dwFlags por muito tempo, de ByVal como por muito tempo) como por muito tempo

Torna-se isto:


    O público declara o liberal “advapi32.dll” aliás “CryptAcquireContextA” de CryptAcquireContext da função (o _
        phProv como o inteiro, pszContainer de ByVal como o inteiro, pszProvider de ByVal como a corda, _
        dwProvType de ByVal como dwFlags do inteiro, do ByVal como o inteiro) como o inteiro

Ser certo mudar também as variáveis locais!

Assim esta linha:

    lHExchgKey não ofuscante como por muito tempo

Tornar-se-ia:

    lHExchgKey não ofuscante como o inteiro
Outras soluções  
 
programming4us programming4us