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:
|
Społeczeństwo Oznajmiać Funkcja CryptAcquireContext Wyzwolenie "advapi32.dll" Pseudonim "CryptAcquireContextA" (_
phProv Długo, ByVal pszContainer Długo, ByVal pszProvider Jako Sznurek, _
ByVal dwProvType Długo, ByVal dwFlags Długo) Długo
Społeczeństwo Oznajmiać Funkcja CryptCreateHash Wyzwolenie "advapi32.dll" (ByVal hProv Długo, _
ByVal PhHash Długo, ByVal hKey Długo, ByVal dwFlags Długo, phHash Długo) Długo
Społeczeństwo Oznajmiać Funkcja CryptHashData Wyzwolenie "advapi32.dll" (ByVal hHash Długo, _
ByVal pbData Sznurek, ByVal dwDataLen Tęsknić, ByVal dwFlags Długo) Długo
Społeczeństwo Oznajmiać Funkcja CryptDeriveKey Wyzwolenie "advapi32.dll" (_
ByVal hProv Długo, ByVal Długo Długo, ByVal hBaseData Długo, ByVal dwFlags Długo, _
phKey Długo) Długo
Społeczeństwo Oznajmiać Funkcja CryptDestroyHash Wyzwolenie "advapi32.dll" (ByVal hHash Długo) Długo
Społeczeństwo Oznajmiać Funkcja CryptDestroyKey Wyzwolenie "advapi32.dll" (ByVal hKey Długo) Długo
Społeczeństwo Oznajmiać Funkcja CryptEncrypt Wyzwolenie "advapi32.dll" (ByVal hKey Długo, _
ByVal hHash Długo, ByVal Finał Długo, ByVal dwFlags Długo, ByVal pbData Jako Sznurek, _
pdwDataLen Tęsknić, ByVal dwBufLen Tęsknić) Długo
Społeczeństwo Oznajmiać Funkcja CryptDecrypt Wyzwolenie "advapi32.dll" (ByVal hKey Długo, _
ByVal hHash Długo, ByVal Finał Długo, ByVal dwFlags Długo, ByVal pbData Jako Sznurek, _
pdwDataLen Tęsknić) Długo
Społeczeństwo Oznajmiać Funkcja CryptReleaseContext Wyzwolenie "advapi32.dll" (ByVal hProv Długo, _
ByVal dwFlags Długo) Długo
Społeczeństwo Oznajmiać Funkcja GetLastError Wyzwolenie "kernel32" () Długo
'konstanta dla Kryptografia API funkcja
Intymny Const CRYPT_NEWKEYSET = &H8
Intymny Const MS_DEF_PROV = "Microsoft Podstawowy Kryptopgraficzny Dostawca v1.0"
Intymny Const PROV_RSA_FULL = (1)
Intymny Const ALG_CLASS_DATA_ENCRYPT = 24576
Intymny Const ALG_CLASS_HASH = 32768
Intymny Const ALG_TYPE_ANY = (0)
Intymny Const ALG_TYPE_BLOCK = 1536
Intymny Const ALG_TYPE_STREAM = 2048
Intymny Const ALG_SID_RC2 = 2
Intymny Const ALG_SID_RC4 = (1)
Intymny Const ALG_SID_SHA1 = 4
Intymny Const ALG_SID_MD5 = 3
Intymny Const CALG_SHA1 = ((ALG_CLASS_HASH Lub ALG_TYPE_ANY) Lub ALG_SID_SHA1)
Intymny Const CALG_MD5 = ((ALG_CLASS_HASH Lub ALG_TYPE_ANY) Lub ALG_SID_MD5)
Intymny Const CALG_RC2 = ((ALG_CLASS_DATA_ENCRYPT Lub ALG_TYPE_BLOCK) Lub ALG_SID_RC2)
Intymny Const CALG_RC4 = ((ALG_CLASS_DATA_ENCRYPT Lub ALG_TYPE_STREAM) Lub ALG_SID_RC4)
Intymny Const ENCRYPT_ALGORITHM = CALG_RC2
Intymny Const ENCRYPT_BLOCK_SIZE = (1)
Intymny Const CRYPT_EXPORTABLE = (1)
'używać jakaś solankowy wartość podczas gdy czerpać the klucz
Intymny Const CRYPT_NO_SALT Długo = &H10
Intymny Funkcja CryptoDecrypt (sInputBuffer Sznurek, sPassword Jako Sznurek, ByRef sErrore Sznurek) Sznurek
Ciemnawy lHExchgKey Długo
Ciemnawy lHCryptprov Długo
Ciemnawy lHHash Długo
Ciemnawy lHkey Długo
Ciemnawy lResult Długo
Ciemnawy sProvider Sznurek
Ciemnawy sCryptBuffer Sznurek
Ciemnawy lCryptBufLen Tęsknić
Ćmić lCryptPoint Długo
Ćmić lPasswordPoint Długo
Ćmić lPasswordCount Długo
Na Błąd Rozpoczynający DecryptError
'dostawać rękojeść the brak CSP.
sProvider = vbNullChar
sProvider = MS_DEF_PROV & vbNullChar
Jeśli nie CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, (0))) Wtedy
'Jeżeli tam być żadny brak klucz zbiornik then tworzyć jeden using Flaga pole
Jeżeli GetLastError = (0) Wtedy
Jeśli nie CBool (CryptAcquireContext (lHCryptprov, 0&, sProvider, PROV_RSA_FULL, CRYPT_NEWKEYSET)) Wtedy
Rozpoczynający Skończony
Kończyć Jeżeli
Kończyć Jeżeli
Kończyć Jeżeli
'Tworzyć hash przedmiot
Jeśli nie CBool (CryptCreateHash (lHCryptprov, CALG_SHA1, (0), (0), lHHash)) Wtedy
Rozpoczynający Skończony
Kończyć Jeżeli
'Hash w the hasło tekst
Jeśli nie CBool (CryptHashData (lHHash, sPassword, Len (sPassword), (0))) Wtedy
Rozpoczynający Skończony
Kończyć Jeżeli
'Tworzyć sesyjny klucz od the hash przedmiot
Jeśli nie CBool (CryptDeriveKey (lHCryptprov, ENCRYPT_ALGORITHM, lHHash, ByVal CRYPT_NO_SALT, lHkey)) Wtedy
Rozpoczynający Skończony
Kończyć Jeżeli
'Niszczyć the hash przedmiot.
CryptDestroyHash (lHHash)
lHHash = (0)
'Przygotowywać sCryptBuffer dla CryptDecrypt
lCryptBufLen = Len (sInputBuffer)
sCryptBuffer = Sznurek (lCryptBufLen, vbNullChar)
LSet sCryptBuffer = sInputBuffer
'Decrypt dane
Jeśli nie CBool (CryptDecrypt (lHkey, (0), (1), (0), sCryptBuffer, lCryptBufLen)) Wtedy
Rozpoczynający Skończony
Kończyć Jeżeli
'Tworzyć wydajność odbojnica z właśnie właśnie dane
CryptoDecrypt = W połowie (sCryptBuffer, (1), lCryptBufLen)
Skończony:
'Niszczyć sesyjny klucz
Jeżeli (lHkey) Wtedy lResult = CryptDestroyKey (lHkey)
'Niszczyć klucz wymiana klucz rękojeść
Jeżeli lHExchgKey Wtedy CryptDestroyKey (lHExchgKey)
'Niszczyć hash przedmiot
Jeżeli lHHash Wtedy CryptDestroyHash (lHHash)
'Uwalniać Kontekst dostawca rękojeść
Jeżeli lHCryptprov Wtedy lResult = CryptReleaseContext (lHCryptprov, (0))
Wychodzić Funkcja
DecryptError:
msgbox (GetLastError)
Końcówka Function |