S
sjw16
Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下:
在窗体上有两个编辑框,一个按钮。一个编辑框用于输入明文,当按下按钮时,
就会在第二个编辑框出现密文。要调用的三个函数如下:
CryptAcquireContext(
@hProv,
pszContainer,
pszProvider,
dwProvType,
dwFlags)
参数类型为:
hProv :HCRYPTPROV;
pszContainer :LPAWSTR;
pszProvider :LPAWSTR;
dwProvType WORD;
dwFlags WORD;
取值为:
pszContainer:=nil;
pszProvider:='Microsoft Base Cryptographic Provider v1.0';
dwProvType:=PROV_RSA_FULL;
dwFlags:=0;
这样就可以获得一个句柄(用于第二个函数)。
再调用第二个函数:
CryptGenKey(hProv,
Algid,
dwFlags,
@hKey),
参数类型为:
hprov就是从第一个函数获的的。
Algid:=AT_KEYEXCHANGE;
dwFlags:=0;
hKey:HCRYPTKEY(获得的句柄用于第三个函数);
第三个函数:
CryptEncrypt(hKey,
hhash,
Final,
dwflags,
pbData, //明文 &
密文
@dwDataLen, //明文长度 &
密文长度
dwbuflen);//缓冲区
参数类型为:
hKey:HCRYPTKEY ,
hHash: HCRYPTHASH ,
Final: BOOL ,
dwFlags: DWORD ,
pbData: PBYTE ,
pdwDataLen: PDWORD ,
dwBufLen: DWORD ,
取值为:
hKey(从第二个函数字获得);
hHash:=0;
Final:=true;
dwFlags:=0;
希望各位多帮助哟十分着急其中前两个函数的调用是正确的。
第三个函数的pbData,@dwDataLen不知道怎么转换?
在窗体上有两个编辑框,一个按钮。一个编辑框用于输入明文,当按下按钮时,
就会在第二个编辑框出现密文。要调用的三个函数如下:
CryptAcquireContext(
@hProv,
pszContainer,
pszProvider,
dwProvType,
dwFlags)
参数类型为:
hProv :HCRYPTPROV;
pszContainer :LPAWSTR;
pszProvider :LPAWSTR;
dwProvType WORD;
dwFlags WORD;
取值为:
pszContainer:=nil;
pszProvider:='Microsoft Base Cryptographic Provider v1.0';
dwProvType:=PROV_RSA_FULL;
dwFlags:=0;
这样就可以获得一个句柄(用于第二个函数)。
再调用第二个函数:
CryptGenKey(hProv,
Algid,
dwFlags,
@hKey),
参数类型为:
hprov就是从第一个函数获的的。
Algid:=AT_KEYEXCHANGE;
dwFlags:=0;
hKey:HCRYPTKEY(获得的句柄用于第三个函数);
第三个函数:
CryptEncrypt(hKey,
hhash,
Final,
dwflags,
pbData, //明文 &
密文
@dwDataLen, //明文长度 &
密文长度
dwbuflen);//缓冲区
参数类型为:
hKey:HCRYPTKEY ,
hHash: HCRYPTHASH ,
Final: BOOL ,
dwFlags: DWORD ,
pbData: PBYTE ,
pdwDataLen: PDWORD ,
dwBufLen: DWORD ,
取值为:
hKey(从第二个函数字获得);
hHash:=0;
Final:=true;
dwFlags:=0;
希望各位多帮助哟十分着急其中前两个函数的调用是正确的。
第三个函数的pbData,@dwDataLen不知道怎么转换?