📄 we.cpp
字号:
#include<stdio.h>
#include <iostream>
void Swap( unsigned char s1, unsigned char s2)
{
unsigned char x;
x=s1;
s1=s2;
s2=x;
}
void main(int argc,char* argv[])
{
char K[255];
unsigned char s[256] ,T[256];
unsigned char a[513],b[513];
int i,j,x,t,r,k=1,inlen,length;
unsigned char input=0;
unsigned char output=0;
char plainname[10],ciphername[10];
FILE * in,* out;
cout<<"/************************开始*********************************/"<<endl;
cout<<"请输入密钥(256个字内):"<<endl; //输入密钥
cin>>K;
length=strlen(K);
while(k==1)
{ cout<<"如果想用同一个密钥请输入1,否则请输入0"<<endl;
cin>>r;
if(r==0) //判断是否用同一个密钥
{
cout<<"请输入密钥(256个字内):"<<endl; //输入密钥
cin>>K;
length=strlen(K);
}
for(i=0;i++;i<256) //初始化S
{s[i]=i;
T[i]=K[i%length];
}
j=0;
for(i=0;i<256;i++)
{
j=(j+s[i]+T[i])%256;
Swap(s[i],s[j]);
}
cout<<"如果想加密就输入0,如果想解密就输入1:"<<endl;
cin>>t;
if(t==0)
{
printf("请输入要加密的文件:\n"); //开始用RC4加密
cin>>plainname;
if((in=fopen(plainname,"rb"))==NULL)
{
printf("不能打开!");
exit(0);
}
printf("请输入加密以后想生成的文件名:\n");
cin>>ciphername;
if((out=fopen(ciphername,"wb+"))==NULL)
{ //打开二进制读取文件
printf("不能打开!");
exit(0);
}
i=0;j=0;
while(!feof(in)) //对文件的RC4加密过程
{
input=(unsigned char)fgetc(in);
i=(i+1)%256;
j=(j+s[i])%256;
Swap(s[i],s[j]);
t=(s[i]+s[j])%256;
K[x]=s[t];
output=input^K[x];
fputc(output,out);
}
fclose(in);
fclose(out);
}
else if(t==1) //开始对文件进行RC4解密
{
printf("请输入要解密的文件:\n");
cin>>ciphername;
if((in=fopen(ciphername,"rb"))==NULL)
{
printf("不能打开!");
exit(0);
}
printf("请输入解密以后要生成的文件名:\n");
cin>>plainname;
if((out=fopen(plainname,"wb+"))==NULL)
{
printf("不能打开!");
exit(0);
}
i=0;j=0;
while(!feof(in)) //开始进行对文件的RC4解密操作
{
input=(unsigned char)fgetc(in);
i=(i+1)%256;
j=(j+s[i])%256;
Swap(s[i],s[j]);
t=(s[i]+s[j])%256;
K[x]=s[t];
output=input^K[x];
fputc(output,out);
}
cout<<endl;
fclose(in);
fclose(out);
}
else
cout<<"输入错误:"<<endl; //判断输入的是否是错误的信息
cout<<"如果还想继续操作请输入1,退出请输入0;"<<endl; //判断对此程序的操作是否继续
cin>>k;
}
cout<<"/**************************结束*********************************/"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -