crypto.h

来自「客户端与服务器的加密验证,用vc开发,只是一个例子,只作参考.」· C头文件 代码 · 共 36 行

H
36
字号
#pragma once
#include <wincrypt.h>
class CCrypto
{
public:
	CCrypto(void);
	~CCrypto(void);
private:
	HCRYPTPROV	hCryptProv ;	// Handle for a cryptographic provider context.
	
	HCRYPTKEY hKey;				//Session KEY
	HCRYPTKEY hXchgKey;			//RSA Key pair
	HCRYPTKEY hPublicKey;		//RSA Public Key

	PBYTE pbPublicKeyBlob ;		//Exported Public Key data
	DWORD dwPublicKeyBlobLen;	

	PBYTE pbSessionKeyBlob ;	//Exported Session Key data which is encrypted with RSA public Key
	DWORD dwSessionKeyBlobLen;

	
public:
	BOOL GetCSP(LPCTSTR strUserName = NULL);
	void ReleaseCSP(void);
	BOOL GetRSAKey(void);
	BOOL GetSessionKey(void);
	void ReleaseKeys(void);
	BOOL ImportPublicKey(void);
	BOOL ImportSessionKey(void);
	void CopyExportedPublicKeyFrom(const CCrypto & crypto);
	void CopyExportedSessionKeyFrom(const CCrypto & crypto);
	BOOL EncryptData(CString & strData);
	BOOL DecryptData(CString & strData);
	void PrintRSAKeyPair(CString & strPublicKey_e, CString & strPublicKey, CString & strPrivateKey);
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?