⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.cpp

📁 RSA算法的VC源码
💻 CPP
字号:
#include "stdafx.h"
#include "stdio.h"
#include "string.h"


extern int Hash(int len,unsigned char* InBuf,unsigned char* OutBuf);
extern int GenRsaKey(unsigned char*PK,unsigned char *SK);
extern int MkSign(int len,unsigned char *Msg,unsigned char *SK,unsigned char *SignData);
extern int VerifySign(int Len,unsigned char *Msg,unsigned char *PK,unsigned char *VerifyData);
extern int asc_hex(unsigned char *asc, unsigned char *hex, int pair_len);
extern long  WINAPI mw_DesEncrypt( unsigned char *Key,__int16 KeyLen,
							  unsigned char *Source, unsigned long SrcLen, unsigned char *result);
extern long  WINAPI mw_DesDecrypt( unsigned char *Key,__int16 KeyLen,
							  unsigned char *Source, unsigned long SrcLen, unsigned char *result);



void main()
{
	unsigned char strBuff[2000],strResult[2000];
	unsigned char PK[1024],SK[1024];
	long i;
	unsigned char tmp[1024],buf[1024];

	
	int st;
	int LenOfResult;
	int LenOfResult2;
	unsigned char rData[200];
	unsigned char rData2[200];
	
/*	memcpy(tmp,"12345678",8);
	asc_hex(tmp,buf,4);
	for(i=0;i<60;i++)
		memcpy(strBuff+i*4,buf,4);
	memcpy(tmp,"cc37451f557d7472094e20740072037b5857527d6d7f250d72771f5f307f2d4c5e7b697e75334c1c38766177021f2879752f5d7620517f7e6e4d347f716e40bbc5645e3e4d551c2f687d5b4b655957746d772b7b7439077f7027797b3f6f297f28744046297b376d447f25536d7c4c77354f797e0c7c5078707c755a7565701bbc9ff9a621159a8be8681c7b4b4a45826a095c783f2cc825c0b4f972cef43217579697dc061e482c9bb774a6e811943cd24e82893d4e8a1a4940e183ac5ddfe4bb622a6d2e706b4f3dfc329c825babbfe4e2ca2e6a08716bb30666366fe3911b1b463075ea8f03f100a34ac5c61bc7632b02852cf9a151aae3ede261bb2c4e9d4da86ef6bd71d9c84bd593edc90592616374c17fc515e6a738722851f0854c5a904b6a1096cd0d12663e4e4e0d567ff3c02664ea38dc0519b52452e46be43b65",640);
	asc_hex(tmp,SK,320);
*/

	/*
	printf("Begin GenRsaKey:\n");
	GenRsaKey(PK,SK);
	printf("End GenRsaKey:\n\n");

	memcpy(tmp,"12345678",8);
	asc_hex(tmp,buf,4);
	for(i=0;i<60;i++)
		memcpy(strBuff+i*4,buf,4);

	printf("MkSign:\n\n");
	i=MkSign(128,strBuff,SK,strResult);
	if(i!=0)
	{
		printf("ERR");
		return;
	}
	memcpy(strBuff,strResult,128);
	for(i=0;i<128;i++)
	{
		printf("%02x",strResult[i]);
	}
	printf("\n\n");

	memset(strResult,0x00,sizeof(strResult));
//	memcpy(tmp,"9d7698f61b7bb338400685348990fa830cafa4d0905c65d2c95be3607e8265cfb67f4ea671dae14a3623e3c694833ff2ec28e23f64c7d418355a35956f60d27197cd88223140ceeda4c429c2e7403bb772623b6e57ee0954ab9384bc47f2402564f1a37701337ddd2f5683d93a5145507be322e823a53911cd27a7e433b9a3b900010001",264);
//	asc_hex(tmp,PK,132);
	printf("VerifySign:\n\n");
	i=VerifySign(128,strBuff,PK,strResult);
	if(i!=0)
	{
		printf("ERR1");
		return;
	}
    for(i=0;i<128;i++)
	{
		printf("%02x",strResult[i]);
	}
	printf("\n\n");
	*/
//	memset(strBuff,0x34,50);
//	Hash(50,strBuff,strResult);
//	GenRsaKey(PK,SK);
/*	printf("PK(N E): \n");
	for(i=0;i<132;i++)
	{
		if(!((i)%128))
			printf("\n");
		printf("%02x",PK[i]);
	}
	printf("\n\n");
	printf("SK(Q,P,Qinv,DP,DQ): \n");
	for(i=0;i<320;i++)
	{
		if(!(i%64))
			printf("\n");
		printf("%02x",SK[i]);
	}
	printf("\n\n");
*/

unsigned char aa[20];
unsigned  char bb[20];
memcpy(aa,"123456",6);
memcpy(bb,"abcdefghijkl",12);

		printf("begin Des Encrypt and Decrypt\n");
		
	LenOfResult=mw_DesEncrypt(aa,6,bb,12,rData);
	printf("LenOfResult Encrypt %d\n",LenOfResult);
	for(i=0;i<LenOfResult;i++)
		printf("%c ",rData[i]);
	printf("\n");

	LenOfResult2=mw_DesDecrypt(aa,6,rData,LenOfResult,rData2);
	printf("LenOfResult Decrypt %d\n",LenOfResult2);

	printf("%s\n",rData);
	for(i=0;i<LenOfResult2;i++)
		printf("%c ",rData2[i]);
	printf("\n");

/*	printf("\n");
	printf("begin Ic Encrypt and Decrypt\n");
//	LenOfResult=mw_IcEncrypt("12345678","abcdefghijkl",12,rData);
	printf("LenOfResult Encrypt %d\n",LenOfResult);
	for(i=0;i<16;i++)
		printf("%c ",rData[i]);
	printf("\n");

	LenOfResult2=mw_IcDecrypt("12345678",rData,LenOfResult,rData2);
	printf("LenOfResult Decrypt %d\n",LenOfResult2);
	for(i=0;i<16;i++)
		printf("%c ",rData2[i]);
	printf("\n");
*/
}

⌨️ 快捷键说明

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