现在字符序列 char buf[] = “hello everyone”;
按行读的话,肯定可以读出数据,如果按列来读话,则会出再乱码的现像。正是这种现
像可作为一种加密手段,称为序列加密。1 #include2 #include 3 #include 4 char *encode(char *str, int column);//加密函数 5 char **get2DMem(int row, int column);//获得二维空间 6 char *decode(char* str, int column);//解密函数 7 int main(void) 8 { 9 char *str="hello world!!"; 10 int column=5; 11 char *secret=encode(str,column); 12 printf("encode=%s\n",secret); 13 str=decode(secret,column); 14 printf("decode=%s\n",str); 15 return 0; 16 } 17 //加密函数 18 char *encode(char *str, int column) 19 { 20 int len=strlen(str);//原始长度 21 int secretLen=0;//由于是二维序列加密,是吧一个字符串按行存储到一个二维空间中, 22 if(len%column!=0)//后按列读取就是密文,如果最后一行字符串填不满,则自己拿什么字符补齐 23 secretLen=len+(column-len%column);//计算经过处理后的字符串长度 24 else 25 secretLen=len; 26 char *temp=(char *)calloc(secretLen+1, sizeof(char)); 27 strcpy(temp,str); 28 int i=0; 29 for(i=len;i
切记用字符指针访问字符串的时候,一定是*p,而不能犯迷糊搞成p之类的,这样访问必然出问题