Fråga : VB6 till VB.NET-omvänddecrypten fungerar

hi alla, jag behöver hjälp att konvertera VB6 kodifierar. Förmiddag som I är ny i VB.Net programming.
This, är vb6na kodifierar; för class=" codeSnippet " för

thanks

1 för >

Allmänhet förklarar fungerar pseudonymen ”CryptAcquireContextA” för den CryptAcquireContext liben ”advapi32.dll” (_,
phProv som Long, ByVal pszContainer som Long, ByVal pszProvider som stränger, _,
ByVal dwProvType som Long, ByVal dwFlags som Long) som Long

Allmänhet förklarar fungerar den CryptCreateHash liben ”advapi32.dll” (ByVal hProv som Long, _,
ByVal som är algid som Long, ByVal hKey som Long, ByVal dwFlags som Long, phHash som Long) som Long

Allmänhet förklarar fungerar den CryptHashData liben ”advapi32.dll” (ByVal hHash som Long, _,
Den ByVal pbDataen som stränger, ByVal dwDataLen som Long, ByVal dwFlags som Long) som Long

Allmänhet förklarar fungerar den CryptDeriveKey liben ”advapi32.dll” (_,
ByVal hProv som Long, ByVal som är algid som Long, ByVal hBaseData som Long, ByVal dwFlags som Long, _,
phKey som Long) som Long

Allmänhet förklarar fungerar den CryptDestroyHash liben ”advapi32.dll” (ByVal hHash som Long) som Long

Allmänhet förklarar fungerar den CryptDestroyKey liben ”advapi32.dll” (den ByVal hKeyen som Long) som Long

Allmänhet förklarar fungerar den CryptEncrypt liben ”advapi32.dll” (den ByVal hKeyen som Long, _,
ByVal hHash som Long, ByVal final som Long, ByVal dwFlags som Long, ByVal pbData som stränger, _,
pdwDataLen, som Long, ByVal dwBufLen som Long) som Long

Allmänhet förklarar fungerar den CryptDecrypt liben ”advapi32.dll” (den ByVal hKeyen som Long, _,
ByVal hHash som Long, ByVal final som Long, ByVal dwFlags som Long, ByVal pbData som stränger, _,
pdwDataLen som Long) som Long

Allmänhet förklarar fungerar den CryptReleaseContext liben ”advapi32.dll” (ByVal hProv som Long, _,
ByVal dwFlags som Long) som Long

Allmänhet förklarar fungerar den GetLastError liben ”kernel32” () som Long

'konstanter för kryptografi API fungerar
Privata Const CRYPT_NEWKEYSET = &H8
Privata Const MS_DEF_PROV = ”Microsoft Base Cryptographic Provider v1.0”,
Privata Const PROV_RSA_FULL = 1
Privata Const ALG_CLASS_DATA_ENCRYPT = 24576
Privata Const ALG_CLASS_HASH = 32768

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

Privata Const ALG_SID_RC2 = 2

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

Privata Const ENCRYPT_ALGORITHM = CALG_RC2
Privata Const ENCRYPT_BLOCK_SIZE = 1

Privata Const CRYPT_EXPORTABLE = 1

'van vid specificera för att inte använda några som är salt, värderar stunder som härleder det nyckel-
Privata Const CRYPT_NO_SALT som Long = &H10

Privat fungera CryptoDecrypt (sInputBuffer som stränger, sPassworden som stränger, ByRef sErrore som stränger) som stränger
Dunkel lHExchgKey som Long
Dunkel lHCryptprov som Long
Dunkel lHHash som Long
Dunkel lHkey som Long
Dunkel lResult som Long

Dunkel sProvider som stränger

Dunkel sCryptBuffer som stränger
Dunkelt lCryptBufLen som Long
Dunkel lCryptPoint som Long

Dunkel lPasswordPoint som Long
Dunkel lPasswordCount som Long

   På felet GoTo DecryptError
   
   'få handtaget till standarden CSP.
   sProvider = vbNullChar
   sProvider = MS_DEF_PROV & vbNullChar
   Om inte CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) Därefter
      Skapa en som använder, sjunker sätter in, 'om det inte finns någon nyckel- behållare för standard då
      Om GetLastError = 0 därefter
         Om inte CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Därefter
              GoTo färdigt
         Avsluta om
      Avsluta om
   Avsluta om
   
   'Skapa en pölsa anmärker
   Om inte CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) Därefter
         GoTo färdigt
   Avsluta om
   
   'Pölsa i lösenordtexten
   Om inte CBool (CryptHashData (lHHash, sPassworden, Len (sPassword), 0)) Därefter
         GoTo färdigt
   Avsluta om
   
   'Skapa en period som är nyckel- från pölsan, anmärker
   Om inte CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkeyen)) Därefter
         GoTo färdigt
   Avsluta om
   
   'Förstör pölsan anmärker.
   CryptDestroyHash (lHHash)
   lHHash = 0
   
   'Förbered sCryptBuffer för CryptDecrypt
   lCryptBufLen = Len (sInputBuffer)
   sCryptBuffer = stränger (lCryptBufLen, vbNullChar),
   LSet sCryptBuffer = sInputBuffer
   
   'Decryptdata
   Om inte CBool (CryptDecrypt (lHkey, 0, 1, 0, sCryptBuffer, lCryptBufLen)), Därefter
         GoTo färdigt
   Avsluta om
   
   'Ställa in tillverkat fungera som buffert med precis decrypted data
   CryptoDecrypt = mitt- (sCryptBuffer, 1, lCryptBufLen),
   
Färdigt:
   
   'Förstör den nyckel- perioden
   Om (lHkey) därefter lResult = CryptDestroyKey (lHkeyen)
   
   'Förstör det nyckel- handtaget för det nyckel- utbytet
   Om lHExchgKey därefter CryptDestroyKey (lHExchgKeyen)
   
   'Förstör pölsa anmärker
   Om lHHash därefter CryptDestroyHash (lHHash)
   
   'Frigör sammanhangfamiljeförsörjarehandtaget
   Om lResult för lHCryptprov därefter = CryptReleaseContext (lHCryptprov, 0)
   
   Gå ut fungerar
   
DecryptError:
   msgbox (GetLastError)

Avsluta Function<-/pre>
" klar "

Svar : VB6 till VB.NET-omvänddecrypten fungerar

”Vad är det korrekt långt att definiera, APIEN fungerar?”,

Ändra alla ”Long” till ”heltalet”, som påstått föregående.

Till exempel första av:

    Allmänhet förklarar fungerar pseudonymen ”CryptAcquireContextA” för den CryptAcquireContext liben ”advapi32.dll” (_,
        phProv som Long, ByVal pszContainer som Long, ByVal pszProvider som stränger, _,
        ByVal dwProvType som Long, ByVal dwFlags som Long) som Long

Blir detta:


    Allmänhet förklarar fungerar pseudonymen ”CryptAcquireContextA” för den CryptAcquireContext liben ”advapi32.dll” (_,
        phProv som heltalet, ByVal pszContainer som heltalet, ByVal pszProvider som stränger, _,
        ByVal dwProvType som heltal-, ByVal dwFlags som heltal) som heltal

Var säker att ändra lokalvariablerna som väl!

Så detta fodrar:

    Dunkel lHExchgKey som Long

Skulle blivet:

    Dunkel lHExchgKey som heltal
Andra lösningar  
 
programming4us programming4us