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