📄 crypt.c
字号:
#include<stdio.h>
#include<string.h>
char sourse[20],cryptograph[20],temp;
int len,i,j,k,n,p[10],len2;
void incrypt(char s[20])
{
len=strlen(s);
n=3; //栅格数
for(i=0;i<=len-1;i++)
{
s[i]+=7;
cryptograph[i]=s[i];
}
k=0;
for(i=1;i<=n;i++)//栅格加密
{
j=i-1;
while(j<=len-1)
{
cryptograph[k]=s[j];
j+=n;
k++;
}
}
return 0;
}
void decrypt(char s[20])
{
len=strlen(s);
n=3;//栅格数
len2=len;
i=1;
while (len2>=0) //计算每个栅格长度
{
if (len2 % n !=0)
{
p[i]=len/n+1;
len2-=(n+1);
i++;
}
else
{
p[i]=len/n;
len2-=n;
i++;
}
}
p[i]=len/n;
p[0]=len/n;
for(i=0;i<=len-1;i++)
{
s[i]-=7;
sourse[i]=s[i];
}
k=0;
for(i=1;i<=(len/n)+1;i++) //栅格解密
{
for(j=i-1;j<=len-1;j+=p[k % n])
{
sourse[k]=s[j];
k++;
if (k>len-1) return 0; //实在没辙了..
}
}
return 0;
}
main()
{
scanf("%s",&sourse);
incrypt(sourse);
printf("%s\n",cryptograph);
decrypt(cryptograph);
printf("%s\n",sourse);
scanf("%s",&sourse);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -