📄 encode.c
字号:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
unsigned char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
int search(char str[],char ch)
{/*在str串中查找字符ch*/
int i,result=-1;
for (i=0;i<strlen(str);i++)
if (str[i]==ch) {result=i; break;}
return result;
}
void encode(unsigned char src[],unsigned char dst[])
{/*dst长度是src长度的2倍*/
int i,j,k,m,len;
unsigned char tmp;
len=strlen(src);
randomize();
for (i=0;i<len;i++) {
j=rand()%6;
tmp=src[i];
tmp=tmp^j;
k=tmp%strlen(str);
m=tmp/strlen(str);
m=m*8+j;
dst[2*i]=str[k]; dst[2*i+1]=str[m];
}
dst[2*i]='\0';
}
void decode(unsigned char src[],unsigned char dst[])
{/*dst长度是src长度的1/2*/
int i,j,k,m,len;
unsigned char tmp;
len=strlen(src);
for (i=0;i<len;i+=2) {
k=search(str,src[i]);
m=search(str,src[i+1]);
j=m%8;
m=m/8;
tmp=m*strlen(str)+k;
tmp=tmp^j;
dst[i/2]=tmp;
}
dst[i/2]='\0';
}
main()
{
unsigned char s1[30]="hello world",s2[30],s3[30];
encode(s1,s2);
puts(s2);
decode(s2,s3);
puts(s3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -