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

  • 大小: 15KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-15
  • 語言: C/C++
  • 標簽: crytoapi??

資源簡介

crytoapi用于信息的加密傳輸,收方通過解密代碼進行解密。是一種很通用的加解密方式。

資源截圖

代碼片段和文件信息

#include?
#include?
#define?_WIN32_WINNT?0X0400
#include?
#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?


void?HandleError(char?*s);
BOOL?CryEncryptFile(
?PCHAR?szSource?
?PCHAR?szDestination?
?PCHAR?szPassword);?
BOOL?CryDecryptFile(
?PCHAR?szSource?
?PCHAR?szDestination?
?PCHAR?szPassword);?
//加密文件例子
void?jiami()
{
PCHAR?szSource;?
????PCHAR?szDestination;?
????PCHAR?szPassword;?
????char??response;

if(!(szSource=(char?*)malloc(100)))
HandleError(“malloc?失敗.“);
if(!(szDestination=(char?*)malloc(100)))
HandleError(“malloc?失敗.“);
if(!(szPassword=(char?*)malloc(100)))
HandleError(“malloc?失敗.“);

printf(“文件加密.?/n/n“);
printf(“請輸入待加密的文件:?“);
scanf(“%s“szSource);
printf(“請輸入保存密文的文件:?“);
scanf(“%s“szDestination);
printf(“使用口令加密文件嗎??(?y/n?)?“);
getchar();
scanf(“%c“&response);
if(response?==?‘y‘)
{
printf(“請輸入口令:“);
scanf(“%s“szPassword);
}
else
{
printf(“不使用口令,則使用隨機數作為密鑰。?/n“);
free(szPassword);
szPassword?=?NULL;
}

//--------------------------------------------------------------------
//?調用EncryptFile函數完成加密。

if(CryEncryptFile(szSource?szDestination?szPassword))
{
printf(“加密文件%s?成功.?/n“?szSource);
printf(“密文文件為?%s./n“szDestination);
}
else
{
HandleError(“加密文件失敗!“);?
}?

}
//解密文件例子
void?jiemi()
{
PCHAR?szSource;?
PCHAR?szDestination;?
PCHAR?szPassword;?
char??response;

if(!(szSource=(char?*)malloc(100)))
HandleError(“malloc?失敗.“);
if(!(szDestination=(char?*)malloc(100)))
HandleError(“malloc?失敗.“);
if(!(szPassword=(char?*)malloc(100)))
HandleError(“malloc?失敗.“);

printf(“文件解密.?/n/n“);
printf(“輸入待解密的文件名:?“);
scanf(“%s“szSource);
printf(“輸入明文保存文件名:?“);
scanf(“%s“szDestination);
printf(“是否使用口令加密的文件??(?y/n?)?“);
getchar();
scanf(“%c“&response);
if(response?==?‘y‘)
{
printf(“輸入口令:“);
scanf(“%s“szPassword);
}
else
{
printf(“沒有使用口令加密,加密密鑰以密文的形式保存在文件中。/n“);
free(szPassword);
szPassword?=?NULL;
}
if(!CryDecryptFile(szSource?szDestination?szPassword))
{
printf(“/n解密文件失敗.?/n“);?
}
else
{?
printf(“/n解密文件%s?成功?/n“?szSource);
printf(“解密后的文件保存為?%s?./n“szDestination);
}

}

/************************************************************************
函數功能:加密文件?????????????????????????????????????????????????????????????
參數:
szSource:[IN],待加密的明文文件路徑
szDestination:[IN]?加密后的密文文件路徑
szPassword:[IN]?口令
************************************************************************/
static?BOOL?CryEncryptFile(
????????PCHAR?szSource?
????????PCHAR?szDestination?
????????PCHAR?szPassword)
{
//變量聲明
FILE?*hSource; //待加密的明文文件句柄
FILE?*hDestination;?//密文文件句柄
HCRYPTPROV?hCryptProv;?//CSP句柄
HCRYPTKEY?hKey; //密鑰句柄
HCRYPTKEY?hXch

評論

共有 條評論

相關資源