一种数据映射方式,初级加密

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HQ354974212/article/details/83688453

一种数据映射方式,自动生成对应表,可以用于初级加密。

#include <stdio.h>  
#include <algorithm>
#include <ctime>
using namespace std;
 

void Print(unsigned  char *p,int N)
{
	for (int i = 1; i <= N; ++i)
	{
		printf("0x%02X,", p[i - 1]);
		if (i % 16 == 0) printf("\n");
	} 
	printf("\n-------------------------------------------------------------------\n");
}
 
int main()
{ 
	 //打印映射表 
	unsigned  char map1[256] = { 0 }; 
	unsigned  char map2[256] = { 0 };
	unsigned  char map3[256] = { 0 };

	for (int  i = 0; i < 256; ++i)
	{
		map1[i] =  i;
	}  

	map1[100] = 255;
	map1[255] = 100;

	Print(map1,256);  

	//随机打乱
	srand((unsigned int)time(0)); 
	random_shuffle(map1, map1+255);

	Print(map1,256);

	 //产生映射表
	for (int i = 0; i < 256; ++i)
	{
		unsigned char  v = map1[i];
		map2[v]= i  ;
	} 
	Print(map2,256);

	//测试映射表
	for (int i = 0; i < 256; ++i)
	{
		unsigned char  v = map2[i];
		map3[v] = i;
	}
	Print(map3, 256);
}
 

猜你喜欢

转载自blog.csdn.net/HQ354974212/article/details/83688453
今日推荐