1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
|
Het publiek verklaart de Lib „advapi32.dll“ alias „CryptAcquireContextA“ van de Functie van CryptAcquireContext (_
phProv zoals lang, ByVal pszContainer zoals lang, ByVal pszProvider als Koord, _
ByVal dwProvType zoals lang, ByVal dwFlags zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptCreateHash van de Functie (ByVal hProv zoals lang, _
ByVal Koud zoals lang, ByVal hKey zoals lang, ByVal dwFlags zo lang, phHash zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptHashData van de Functie (ByVal hHash zoals lang, _
pbData van ByVal als Koord, ByVal dwDataLen zoals lang, ByVal dwFlags zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptDeriveKey van de Functie (_
ByVal hProv zoals lang, ByVal Koud zoals lang, hBaseData ByVal zoals lang, ByVal dwFlags zoals lang, _
phKey zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptDestroyHash van de Functie (ByVal hHash zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptDestroyKey van de Functie (hKey ByVal zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptEncrypt van de Functie (hKey ByVal zoals lang, _
ByVal hHash zoals lang, Def. ByVal zoals lang, ByVal dwFlags zoals lang, pbData ByVal als Koord, _
pdwDataLen zoals lang, ByVal zoals lang) zoals lang dwBufLen
Het publiek verklaart de Lib „advapi32.dll“ van CryptDecrypt van de Functie (hKey ByVal zoals lang, _
ByVal hHash zoals lang, Def. ByVal zoals lang, ByVal dwFlags zoals lang, pbData ByVal als Koord, _
pdwDataLen zoals lang) zoals lang
Het publiek verklaart de Lib „advapi32.dll“ van CryptReleaseContext van de Functie (ByVal hProv zoals lang, _
ByVal dwFlags zoals lang) zoals lang
Het publiek verklaart de Lib „kernel32“ van GetLastError van de Functie () zoals lang
'constanten voor API van de Cryptografie functies
Privé Const CRYPT_NEWKEYSET = &H8
Privé Const MS_DEF_PROV = „Leverancier van de Basis van Microsoft de Cryptografische v1.0“
Privé Const PROV_RSA_FULL = 1
Privé Const ALG_CLASS_DATA_ENCRYPT = 24576
Privé Const ALG_CLASS_HASH = 32768
Privé Const ALG_TYPE_ANY = 0
Privé Const ALG_TYPE_BLOCK = 1536
Privé Const ALG_TYPE_STREAM = 2048
Privé Const ALG_SID_RC2 = 2
Privé Const ALG_SID_RC4 = 1
Privé Const ALG_SID_SHA1 = 4
Privé Const ALG_SID_MD5 = 3
Privé Const CALG_SHA1 = ((ALG_CLASS_HASH of ALG_TYPE_ANY) of ALG_SID_SHA1)
Privé Const CALG_MD5 = ((ALG_CLASS_HASH of ALG_TYPE_ANY) of ALG_SID_MD5)
Privé Const CALG_RC2 = ((ALG_CLASS_DATA_ENCRYPT of ALG_TYPE_BLOCK) of ALG_SID_RC2)
Privé Const CALG_RC4 = ((ALG_CLASS_DATA_ENCRYPT of ALG_TYPE_STREAM) of ALG_SID_RC4)
Privé Const ENCRYPT_ALGORITHM = CALG_RC2
Privé Const ENCRYPT_BLOCK_SIZE = 1
Privé Const CRYPT_EXPORTABLE = 1
'gebruikt specificeren om om het even welke zoute waarde niet te gebruiken terwijl het afleiden van de sleutel
Privé Const CRYPT_NO_SALT als lang = &H10
Privé Functie CryptoDecrypt (sInputBuffer als Koord, sPassword als Koord, ByRef sErrore als Koord) als Koord
Schemerige lHExchgKey zoals lang
Schemerige lHCryptprov zoals lang
Schemerige lHHash zoals lang
Schemerige lHkey zoals lang
Schemerige lResult zoals lang
Schemerige sProvider als Koord
Schemerige sCryptBuffer als Koord
Schemerig lCryptBufLen zoals lang
Verduister lCryptPoint zoals lang
Verduister lPasswordPoint zoals lang
Verduister lPasswordCount zoals lang
Op Fout GoTo DecryptError
'krijg handvat aan het gebrek CSP.
sProvider = vbNullChar
sProvider = MS_DEF_PROV & vbNullChar
Als niet CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, 0)) Dan
'Als er geen standaard zeer belangrijke container dan is één gebruikend het gebied van Vlaggen cre�ër
Als GetLastError = 0 toen
Als niet CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Dan
Gebeëindigde GoTo
Eind als
Eind als
Eind als
'Cre�ër een knoeiboelvoorwerp
Als niet CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, 0, 0, lHHash)) Dan
Gebeëindigde GoTo
Eind als
'Knoeiboel in de wachtwoordtekst
Als niet CBool (CryptHashData (lHHash, sPassword, Len (sPassword), 0)) Dan
Gebeëindigde GoTo
Eind als
'Cre�ër een zittingssleutel van het knoeiboelvoorwerp
Als niet CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) Dan
Gebeëindigde GoTo
Eind als
'Vernietig het knoeiboelvoorwerp.
CryptDestroyHash (lHHash)
lHHash = 0
'Tref sCryptBuffer voor CryptDecrypt voorbereidingen
lCryptBufLen = Len (sInputBuffer)
sCryptBuffer = bind vast (lCryptBufLen, vbNullChar)
LSet sCryptBuffer = sInputBuffer
'Decrypteer gegevens
Als niet CBool (CryptDecrypt (lHkey, 0, 1, 0, sCryptBuffer, lCryptBufLen)) Dan
Gebeëindigde GoTo
Eind als
'De outputbuffer van de opstelling met enkel gedecrypteerde gegevens
CryptoDecrypt = Medio (sCryptBuffer, lCryptBufLen 1,)
Geëindigdy:
'Vernietig zittingssleutel
Als (lHkey) Dan lResult = CryptDestroyKey (lHkey)
'Vernietig zeer belangrijk uitwisselings zeer belangrijk handvat
Als lHExchgKey toen CryptDestroyKey (lHExchgKey)
'Vernietig knoeiboelvoorwerp
Als lHHash toen CryptDestroyHash (lHHash)
'De leveranciershandvat van de Context van de versie
Als lHCryptprov toen lResult = CryptReleaseContext (lHCryptprov, 0)
De Functie van de uitgang
DecryptError:
msgbox (GetLastError)
Eind Function |