91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.52MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-19
  • 語言: C/C++
  • 標簽: C++??CryptAPI??

資源簡介

用C++編寫的調用CryptAPI庫函數實現DH交換協議的演示程序,供學習參考

資源截圖

代碼片段和文件信息

#pragma???comment(lib“Crypt32.lib“)
#include?
#include?
#include?
#include?“eboy_wincrypt.h“
//#include?

//#define?MY_ENCODING_TYPE??(PKCS_7_ASN_ENCODING?|?X509_ASN_ENCODING)
//#define?KEYLENGTH??0x00800000
//#define?ENCRYPT_ALGORITHM?CALG_RC2?
//#define?ENCRYPT_BLOCK_SIZE?8?
#define?DHKEYSIZE?512


void?HandleError(char?*s);

static?const?BYTE?g_rgbPrime[]?=?
{
0x91?0x02?0xc8?0x31?0xee?0x36?0x07?0xec?
0xc2?0x24?0x37?0xf8?0xfb?0x3d?0x69?0x49?
0xac?0x7a?0xab?0x32?0xac?0xad?0xe9?0xc2?
0xaf?0x0e?0x21?0xb7?0xc5?0x2f?0x76?0xd0?
0xe5?0x82?0x78?0x0d?0x4f?0x32?0xb8?0xcb
0xf7?0x0c?0x8d?0xfb?0x3a?0xd8?0xc0?0xea?
0xcb?0x69?0x68?0xb0?0x9b?0x75?0x25?0x3d
0xaa?0x76?0x22?0x49?0x94?0xa4?0xf2?0x8d?
};

//?Generator?in?little-endian?format.
static?BYTE?g_rgbGenerator[]?=?
{
0x02?0x88?0xd7?0xe6?0x53?0xaf?0x72?0xc5
0x8c?0x08?0x4b?0x46?0x6f?0x9f?0x2e?0xc4
0x9c?0x5c?0x92?0x21?0x95?0xb7?0xe5?0x58?
0xbf?0xba?0x24?0xfa?0xe5?0x9d?0xcb?0x71?
0x2e?0x2c?0xce?0x99?0xf3?0x10?0xff?0x3b
0xcb?0xef?0x6c?0x95?0x22?0x55?0x9d?0x29
0x00?0xb5?0x4c?0x5b?0xa5?0x63?0x31?0x41
0x13?0x0a?0xea?0x39?0x78?0x02?0x6d?0x62
};



//基于DH密鑰交換協議的例子
void?DH()
{
// PCHAR?szSource;?
//???PCHAR?szDestination;?
//???PCHAR?szPassword;?
//???char??response;
BOOL?fReturn;
HCRYPTPROV?hCryptProv1?; //密鑰1的CSP
HCRYPTPROV?hCryptProv2?; //密鑰2的CSP
HCRYPTKEY?hPrivateKey1?=?NULL;
????HCRYPTKEY?hPrivateKey2?=?NULL;
HCRYPTKEY?hSessionKey1?=?NULL;
????HCRYPTKEY?hSessionKey2?=?NULL;
DWORD?dwDataLen1;
DWORD?dwDataLen2;
DATA_BLOB?P;
????DATA_BLOB?G;
PBYTE?pbKeyBlob1?=?NULL;
PBYTE?pbKeyBlob2?=?NULL;
ALG_ID?Algid?=?CALG_DES;
BYTE?*pbData;
int?i?=?0;

P.cbData?=?DHKEYSIZE/8;
????P.pbData?=?(BYTE*)(g_rgbPrime);

????G.cbData?=?DHKEYSIZE/8;
????G.pbData?=?(BYTE*)(g_rgbGenerator);


BYTE?g_rgbData[1000]?=?“Hello?World“;//要加密的數據?會碰到緩沖區不足問題
DWORD?dwLength?=?sizeof(g_rgbData);


printf(“連接CSP1(DH)...\n“);

if(CryptAcquireContext(
&hCryptProv1?
NULL?
MS_ENH_DSS_DH_PROV//MS_ENHANCED_PROV
PROV_DSS_DH //PROV_RSA_FULL
CRYPT_VERIFYCONTEXT)) //0
{
printf(“打開CSP1成功?\n“);
}
else
{
HandleError(“調用?CryptAcquireContext?出錯!“);?
}


printf(“生成密鑰對1...\n“);

if(CryptGenKey(
????????hCryptProv1?
????????CALG_DH_EPHEM?
DHKEYSIZE?<????????&hPrivateKey1))
{
printf(“創建會話密鑰1成功.?\n“);
}?
else
{
HandleError(“調用?CryptGenKey?出錯!“);?
}

????//?Set?the?prime?for?party?1‘s?private?key.
????fReturn?=?CryptSetKeyParam(
????????hPrivateKey1
????????KP_P
????????(PBYTE)&P
????????0);
????if(!fReturn)
????{
????????goto?ErrorExit;
????}

????//?Set?the?generator?for?party?1‘s?private?key.
????fReturn?=?CryptSetKeyParam(
????????hPrivateK

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-03-19?02:08??dh\
?????目錄???????????0??2012-04-05?21:40??dh\Debug\
?????文件??????155715??2012-03-19?02:07??dh\Debug\dh.exe
?????文件??????193996??2012-03-19?02:07??dh\Debug\dh.ilk
?????文件?????3561764??2012-03-19?00:11??dh\Debug\dh.pch
?????文件??????418816??2012-03-19?02:07??dh\Debug\dh.pdb
?????文件???????25506??2012-03-19?02:07??dh\Debug\dh_alice.obj
?????文件???????????9??2012-04-05?21:40??dh\Debug\run.bat
?????文件??????164864??2012-03-19?02:07??dh\Debug\vc60.idb
?????文件???????77824??2012-03-19?02:07??dh\Debug\vc60.pdb
?????文件????????4236??2012-03-18?18:30??dh\dh.dsp
?????文件?????????529??2012-03-18?18:09??dh\dh.dsw
?????文件???????66560??2012-03-19?02:08??dh\dh.ncb
?????文件???????54784??2012-03-19?02:08??dh\dh.opt
?????文件????????1389??2012-03-19?02:07??dh\dh.plg
?????文件????????8871??2012-03-19?02:08??dh\dh_alice.cpp
?????文件??????656247??2012-03-18?23:27??dh\eboy_wincrypt.h
?????目錄???????????0??2012-03-19?00:04??dh\lib\
?????文件??????264106??1999-02-13?11:03??dh\lib\Crypt32.Lib

評論

共有 條評論