Question : VB6 à la fonction de déchiffrage de converti de VB.NET

salut chacun, j'ai besoin de l'aide convertir le code VB6. Je suis nouveau dans VB.Net programming.
This est le code vb6 ; class= " lineNumbers " >
1 de >

thanks

Le public déclare la bibliothèque « advapi32.dll » dit « CryptAcquireContextA » de CryptAcquireContext de fonction (le _
phProv en tant que longtemps, pszContainer de ByVal en tant que longtemps, pszProvider de ByVal comme corde, _
dwProvType de ByVal en tant que dwFlags longtemps, de ByVal en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptCreateHash de fonction (hProv de ByVal en tant que longtemps, le _
ByVal algide en tant que hKey longtemps, de ByVal en tant que les dwFlags longtemps, de ByVal en tant que longtemps, phHash en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptHashData de fonction (hHash de ByVal en tant que longtemps, le _
Le pbData de ByVal comme corde, ByVal dwDataLen en tant que dwFlags longtemps, de ByVal en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptDeriveKey de fonction (le _
hProv de ByVal en tant que longtemps, ByVal algide en tant que longtemps, hBaseData de ByVal en tant que longtemps, dwFlags de ByVal en tant que longtemps, _
phKey en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptDestroyHash de fonction (hHash de ByVal en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptDestroyKey de fonction (hKey de ByVal en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptEncrypt de fonction (hKey de ByVal en tant que longtemps, le _
hHash de ByVal en tant que longtemps, finale de ByVal en tant que longtemps, dwFlags de ByVal en tant que longtemps, pbData de ByVal comme corde, _
pdwDataLen comme longtemps, ByVal dwBufLen comme longtemps) comme longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptDecrypt de fonction (hKey de ByVal en tant que longtemps, le _
hHash de ByVal en tant que longtemps, finale de ByVal en tant que longtemps, dwFlags de ByVal en tant que longtemps, pbData de ByVal comme corde, _
pdwDataLen en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « advapi32.dll » de CryptReleaseContext de fonction (hProv de ByVal en tant que longtemps, le _
dwFlags de ByVal en tant que longtemps) en tant que longtemps

Le public déclare la bibliothèque « kernel32 » de GetLastError de fonction () en tant que longtemps

'constantes pour des fonctions de la cryptographie api
Const privé CRYPT_NEWKEYSET = &H8
Const privé MS_DEF_PROV = « Microsoft Base Cryptographic Provider v1.0 »
Const privé PROV_RSA_FULL = 1
Const privé ALG_CLASS_DATA_ENCRYPT = 24576
Const privé ALG_CLASS_HASH = 32768

Const privé ALG_TYPE_ANY = 0
Const privé ALG_TYPE_BLOCK = 1536
Const privé ALG_TYPE_STREAM = 2048

Const privé ALG_SID_RC2 = 2

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

Const privé ENCRYPT_ALGORITHM = CALG_RC2
Const privé ENCRYPT_BLOCK_SIZE = 1

Const privé CRYPT_EXPORTABLE = 1

'spécifiaient pour ne pas employer n'importe quelle valeur de sel tout en dérivant la clef
Const privé CRYPT_NO_SALT en tant que longtemps = &H10

Fonction privée CryptoDecrypt (sInputBuffer comme corde, sPassword comme sErrore de corde, de ByRef comme corde) comme corde
Faible lHExchgKey en tant que longtemps
Faible lHCryptprov en tant que longtemps
Faible lHHash en tant que longtemps
Faible lHkey en tant que longtemps
Faible lResult en tant que longtemps

Faible sProvider comme corde

Faible sCryptBuffer comme corde
Faible lCryptBufLen en tant que longtemps
Obscurcir le lCryptPoint en tant que longtemps

Obscurcir le lPasswordPoint en tant que longtemps
Obscurcir le lPasswordCount en tant que longtemps

   Sur l'erreur DecryptError GoTo
   
   'obtenir la poignée au défaut CSP.
   sProvider = vbNullChar
   sProvider = MS_DEF_PROV et vbNullChar
   Sinon CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) Puis
      'S'il n'y a aucun récipient de clef de défaut puis crée un using le champ de drapeaux
      Si GetLastError = 0 puis
         Sinon CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Puis
              De finition GoTo
         Finir si
      Finir si
   Finir si
   
   'Créer un objet de gâchis
   Sinon CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) Puis
         De finition GoTo
   Finir si
   
   'Hacher dans le texte de mot de passe
   Sinon CBool (CryptHashData (lHHash, sPassword, Len (sPassword), 0)) Puis
         De finition GoTo
   Finir si
   
   'Créer une clef de session de l'objet de gâchis
   Sinon CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) Puis
         De finition GoTo
   Finir si
   
   'Détruire l'objet de gâchis.
   CryptDestroyHash (lHHash)
   lHHash = 0
   
   'Préparer le sCryptBuffer pour CryptDecrypt
   lCryptBufLen = Len (le sInputBuffer)
   sCryptBuffer = corde (lCryptBufLen, vbNullChar)
   sCryptBuffer = sInputBuffer de LSet
   
   'Données de déchiffrage
   Sinon CBool (CryptDecrypt (le lHkey, 0, 1, 0, le sCryptBuffer, lCryptBufLen)) Puis
         De finition GoTo
   Finir si
   
   'Installer l'amortisseur de rendement avec juste des données déchiffrées
   CryptoDecrypt = mi (le sCryptBuffer, 1, lCryptBufLen)
   
De finition :
   
   'Détruire la clef de session
   Si (lHkey) puis lResult = CryptDestroyKey (lHkey)
   
   'Détruire la poignée principale de clef d'échange
   Si lHExchgKey puis CryptDestroyKey (lHExchgKey)
   
   'Détruire l'objet de gâchis
   Si lHHash puis CryptDestroyHash (lHHash)
   
   'Libérer la poignée de fournisseur de contexte
   Si lResult de lHCryptprov puis = CryptReleaseContext (lHCryptprov, 0)
   
   Sortir la fonction
   
DecryptError :
   msgbox (GetLastError)

Class= >
" clair " de l'extrémité Function
class= de

Réponse : VB6 à la fonction de déchiffrage de converti de VB.NET

« Ce qui est la manière correcte de définir les fonctions d'api ? »

Comme indiqué précédemment, changer tous « longtemps » en « nombre entier ».

Par exemple, le premier de :

    Le public déclare la bibliothèque « advapi32.dll » dit « CryptAcquireContextA » de CryptAcquireContext de fonction (le _
        phProv en tant que longtemps, pszContainer de ByVal en tant que longtemps, pszProvider de ByVal comme corde, _
        dwProvType de ByVal en tant que dwFlags longtemps, de ByVal en tant que longtemps) en tant que longtemps

Devient ceci :


    Le public déclare la bibliothèque « advapi32.dll » dit « CryptAcquireContextA » de CryptAcquireContext de fonction (le _
        phProv comme nombre entier, pszContainer de ByVal comme nombre entier, pszProvider de ByVal comme corde, _
        dwProvType de ByVal comme dwFlags de nombre entier, de ByVal comme nombre entier) comme nombre entier

Être sûr de changer les variables locales aussi bien !

Ainsi cette ligne :

    Faible lHExchgKey en tant que longtemps

Deviendrait :

    Faible lHExchgKey comme nombre entier
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us