按行读的话,肯定可以读出数据,如果按列来读的话,则会出再乱码的现像。正
是这种现像可作为一种加密手段,称为序列加密。
hello everyone 原始序列
可以看成
hello_
everyo
ne****
按列提取
hen
eve
le*
lr*
oy*
_o*
henevele*lr*oy*_o* 此时就为加密后的序列
现在实现加密与解密的功能:
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 char* encode(char* str,int col) 5 { 6 int i,j; 7 int strLen = strlen(str); 8 int bufLen = strLen + col - strLen%col; 9 10 char* strBuf = malloc(bufLen+1);//线性一维空间,存储完原始数据后之后当成二维空间使用 11 strcpy(strBuf,str); 12 // char* pbuf = buf; 13 for(i = strLen;i < bufLen;i++) 14 { 15 *(strBuf+i) = '*';//strBuf[i] = '*'; 16 } 17 *(strBuf+i) = '