加密解密-换位加解密
基本思想:将明文按给定的顺序进行输出,形成密文。
示例:
二维数组保存明文按行优先方式,输出密文按列优先方式。
#include <stdio.h>
void encrypt(char arrData[4][4])
{
int i = 0, j = 0;
char tmpData[4][4];
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
tmpData[j][i] = arrData[i][j];
}
}
memcpy(arrData, tmpData, 16);
}
void printData(char arrData[4][4])
{
int i = 0, j = 0;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
printf("%c ", arrData[i][j]);
}
printf("\n");
}
}
int main()
{
int i = 0;
char testData[4][4] = {
'A','B','C','D',
'E','F','G','H',
'I','J','K','L',
'M','N','O','P',
};
printf("=============== origianl data =============\n");
printData(testData);
printf("=============== encrypt data =============\n");
encrypt(testData);
printData(testData);
printf("=============== deencrypt data =============\n");
encrypt(testData);
printData(testData);
scanf("%d", &i);
}