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

📄 aestest.cpp

📁 AES加密算法vC++实现类源码 hello 1243435
💻 CPP
字号:
// AEStest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

/*void fileData(char str, char *data, int data_len)
{
	for ( int i=0;i<data_len;i++)
	{
		data[i] = str;
	}
}

void printfData(char * data, int data_len)
{
	for ( int i=0;i<data_len;i++)
	{
		printf("%d ",data[i]);
	}
	printf("\n");
}
int main(int argc, char* argv[])
{
	int key_len = 16;
	int str_len = 16;
	char * key = new char[key_len];
	char * str = new char [str_len];

	char * out = new char[str_len];
	
	fileData('1',key, key_len);
	fileData('d',str, str_len);

	AES aes;
	InitAES(&aes, str_len, (unsigned char*)key, key_len, encrypt);
	memcpy(aes.State, str, str_len);
	CipherLoop(&aes);
	memcpy(out, aes.State, str_len);

	printf("进行加密,明文:\n");

	printfData(str, str_len);
	printf("\n密文:\n");
	printfData(out, str_len);



	InitAES(&aes, str_len, (unsigned char *)key, key_len, decrypt);
	memcpy(aes.State, out, str_len);
	InvCipherLoop(&aes);
	memcpy(str, aes.State, str_len);

	printf("\n\n进行解密\n密文:\n");
	printfData(out, str_len);
	printf("\n密解出的明文:\n");
	printfData(str, str_len);
	return 0;
}*/
int main(int argc, CHAR* argv[])
{
	
	//明文
	char str [] = {0,1,2,3,4,5,6, 7,8, 9,10,11,12,13,14,15};
	//密文
	char out [16];

	//密钥
	char key [] = {11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26};

	AES aes;

	//做加密如果解密把encrypt换成decrypt
	//明文长度可以取得值是    16,24,32
	//密钥key长度可以到的值是 16,24,32
	InitAES(&aes, 16, (unsigned char*)key, 16,encrypt);
	
	//将明文放入aes.state,待加密
	memcpy(aes.State,str, 16); 

	//加密主函数,解密时换InvCipherLoop
	CipherLoop(&aes);

	//将加密后的数据放入out中
	memcpy(out,aes.State , 16);

	printf("明文:\n");
	for ( int i=0;i<16;i++)
	{
		printf("%02d ", str[i]);
	}
	printf("\n\n");
	printf("密文:\n");
	for ( /*int */i=0;i<16;i++)
	{
		printf("%02d ", out[i]);
	}
	printf("\n");


	//--------------------------------------------------------
	//下面是加密文件的例子
	
/*	FILE *psrc  = fopen("c:\\a.txt","rb");
	FILE *pdest = fopen("c:\\b.txt","wb");

	int blockSize = 16;
	int keySize   = 16;
	int nRead     = 0;

//	unsigned char key[16];
	//设置密钥
	strcpy((char*)key, "123456");

	//AES aes;
	InitAES(blockSize,&aes , keySize, encrypt);

	nRead = fread(aes.State, blockSize, 1, psrc);
	while(nRead)
	{
		CipherLoop(&aes);
		fwrite(aes.State, blockSize, 1, pdest);
		nRead = fread(aes.State, blockSize, 1, psrc);
	}*/
	return 0;
}

⌨️ 快捷键说明

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