Questione : VB6 alla funzione di decrypt del convertito di VB.NET

ciao tutto, ho bisogno dell'aiuto di convertire il codice VB6. Sono nuovo in VB.Net programming.
This sono il codice vb6; class= " lineNumbers " >
1 del >

thanks

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ altrimenti detto “CryptAcquireContextA„ di CryptAcquireContext di funzione (_
phProv come lungamente, pszContainer di ByVal come lungamente, pszProvider di ByVal come stringa, _
dwProvType di ByVal come dwFlags di ByVal, lungamente come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptCreateHash di funzione (hProv di ByVal come lungamente, _
ByVal algido come hKey di ByVal, lungamente come i dwFlags di ByVal, lungamente come lungamente, phHash come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptHashData di funzione (hHash di ByVal come lungamente, _
Il pbData come stringa, ByVal di ByVal dwDataLen come dwFlags di ByVal, lungamente come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptDeriveKey di funzione (_
hProv di ByVal come lungamente, ByVal algido come lungamente, hBaseData di ByVal come lungamente, dwFlags di ByVal come lungamente, _
phKey come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptDestroyHash di funzione (hHash di ByVal come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptDestroyKey di funzione (hKey di ByVal come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptEncrypt di funzione (hKey di ByVal come lungamente, _
hHash di ByVal come lungamente, finale di ByVal come lungamente, dwFlags di ByVal come lungamente, pbData di ByVal come stringa, _
pdwDataLen come lungamente, ByVal dwBufLen come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptDecrypt di funzione (hKey di ByVal come lungamente, _
hHash di ByVal come lungamente, finale di ByVal come lungamente, dwFlags di ByVal come lungamente, pbData di ByVal come stringa, _
pdwDataLen come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “advapi32.dll„ di CryptReleaseContext di funzione (hProv di ByVal come lungamente, _
dwFlags di ByVal come lungamente) come lungamente

Il pubblico dichiara il movimento di liberazione “kernel32„ di GetLastError di funzione () come lungamente

'costanti per le funzioni della crittografia api
Const riservato CRYPT_NEWKEYSET = &H8
Const riservato MS_DEF_PROV = “Microsoft Base Cryptographic Provider v1.0„
Const riservato PROV_RSA_FULL = 1
Const riservato ALG_CLASS_DATA_ENCRYPT = 24576
Const riservato ALG_CLASS_HASH = 32768

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

Const riservato ALG_SID_RC2 = 2

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

Const riservato ENCRYPT_ALGORITHM = CALG_RC2
Const riservato ENCRYPT_BLOCK_SIZE = 1

Const riservato CRYPT_EXPORTABLE = 1

'ha usato per specificare per non usare alcun valore del sale mentre derivavano la chiave
Const riservato CRYPT_NO_SALT come lungamente = &H10

Funzione riservata CryptoDecrypt (sInputBuffer come stringa, sPassword come sErrore di ByRef, della stringa come stringa) come stringa
lHExchgKey fioco come lungamente
lHCryptprov fioco come lungamente
lHHash fioco come lungamente
lHkey fioco come lungamente
lResult fioco come lungamente

sProvider fioco come stringa

sCryptBuffer fioco come stringa
Fioco lCryptBufLen come lungamente
Oscurare il lCryptPoint come lungamente

Oscurare il lPasswordPoint come lungamente
Oscurare il lPasswordCount come lungamente

   Sull'errore DecryptError di avanzamento
   
   'ottenere la maniglia al difetto CSP.
   sProvider = vbNullChar
   sProvider = MS_DEF_PROV & vbNullChar
   Se non CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) Allora
      'Se non ci è contenitore di chiave di difetto quindi generare uno using il campo delle bandierine
      Se GetLastError = 0 allora
         Se non CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Allora
              Finished di avanzamento
         Concluder se
      Concluder se
   Concluder se
   
   'Generare un oggetto del hash
   Se non CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) Allora
         Finished di avanzamento
   Concluder se
   
   'Tritare nel testo di parola d'accesso
   Se non CBool (CryptHashData (lHHash, sPassword, Len (sPassword), 0)) Allora
         Finished di avanzamento
   Concluder se
   
   'Generare una chiave di sessione dall'oggetto del hash
   Se non CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) Allora
         Finished di avanzamento
   Concluder se
   
   'Distruggere l'oggetto del hash.
   CryptDestroyHash (lHHash)
   lHHash = 0
   
   'Preparare lo sCryptBuffer per CryptDecrypt
   lCryptBufLen = Len (sInputBuffer)
   sCryptBuffer = stringa (lCryptBufLen, vbNullChar)
   sCryptBuffer = sInputBuffer di LSet
   
   'Dati di Decrypt
   Se non CBool (CryptDecrypt (lHkey, 0, 1, 0, lo sCryptBuffer, lCryptBufLen)) Allora
         Finished di avanzamento
   Concluder se
   
   'Installare l'amplificatore di uscita con appena i dati decifrati
   CryptoDecrypt = metà di (sCryptBuffer, 1, lCryptBufLen)
   
Finished:
   
   'Distruggere la chiave di sessione
   Se (lHkey) allora lResult = CryptDestroyKey (lHkey)
   
   'Distruggere la maniglia chiave di chiave di scambio
   Se lHExchgKey allora CryptDestroyKey (lHExchgKey)
   
   'Distruggere l'oggetto del hash
   Se lHHash allora CryptDestroyHash (lHHash)
   
   'Liberare la maniglia del fornitore di contesto
   Se lResult del lHCryptprov allora = CryptReleaseContext (lHCryptprov, 0)
   
   Uscire la funzione
   
DecryptError:
   msgbox (GetLastError)

Class= > " libero " dell'estremità Function
class= del

Risposta : VB6 alla funzione di decrypt del convertito di VB.NET

“Che cosa è il senso corretto definire le funzioni di api?„

Come dichiarato precedentemente, cambiare “lungamente„ tutti “al numero intero„.

Per esempio, quello primo di:

    Il pubblico dichiara il movimento di liberazione “advapi32.dll„ altrimenti detto “CryptAcquireContextA„ di CryptAcquireContext di funzione (_
        phProv come lungamente, pszContainer di ByVal come lungamente, pszProvider di ByVal come stringa, _
        dwProvType di ByVal come dwFlags di ByVal, lungamente come lungamente) come lungamente

Diventa questo:


    Il pubblico dichiara il movimento di liberazione “advapi32.dll„ altrimenti detto “CryptAcquireContextA„ di CryptAcquireContext di funzione (_
        phProv come numero intero, pszContainer di ByVal come numero intero, pszProvider di ByVal come stringa, _
        dwProvType di ByVal come dwFlags di ByVal, di numero intero come numero intero) come numero intero

Essere sicuro cambiare le variabili locali pure!

Così questa linea:

    lHExchgKey fioco come lungamente

Diventerebbe:

    lHExchgKey fioco come numero intero
Altre soluzioni  
 
programming4us programming4us