#includestdio.h
#includestring.h
#define PASSWORD 3
int main()
{
char c;
FILE *source = fopen("source.txt","r");//源 解密时将该源文件换成加密后的文件
FILE *result = fopen("result.txt","w");//处理结果
while((c=fgetc(source))!=EOF)//加密
{
if(c='a'c='z')
c='a'+(c-'a'+PASSWORD)%26;
else if(c='A'c='Z')
c='A'+(c-'A'+PASSWORD)%26;
fputc(c,result);
}
/*
while((c=fgetc(source))!=EOF)//解密 解密时将加密部分注释掉
{
if(c='a'c='z')
c='a'+(c-'a'+26-PASSWORD)%26;
else if(c='A'c='Z')
c='A'+(c-'A'+26-PASSWORD)%26;
fputc(c,result);
}
*/
close(source);
close(result);
system("pause");
return 0;
}
这是之前写的,可以看看
#include iostream
#include string
using namespace std;
int main()
{
string code;//储存初始字符串
string d_code;//加密后的字符串
int i;
int n; //移位的个数
cout"Enter the string "endl;
cincode;
cout"how many step do you want to move ?"endl;
cinn;
for(i=0;icode.size();++i)
{
if(int(code[i])97)
{
if(int(code[i])+n122)
d_code[i]=int(code[i])+n-26;
else
d_code[i]=int(code[i])+n;
}
else if(int(code[i])+n90)
d_code[i]=char(int(code[i])+n-26);
else
d_code[i]=char(int(code[i]+n));
}
for(i=0;icode.size();++i)
{
coutd_code[i];
}
coutendl;
cout"Code = "codeendl;
return 0;
}
凯撒密码就是简单的加上一个数,'a'+3='d';'z'+3='c' 假设原文全是小写字母,那么 char plain[N]={...}; //明文 char cipher[N]={};//密文 int key=3; int i=0,temp; for(i=0;iN;i++) {if(plain[i]!=' ') {temp=plain[i]+key-'a'; temp=temp%26; cipher[i]=temp+'a'; } else cipher[i]=plain[i]; } 这样就完成了加密,密文数组里面就是对原文加密后的密文,key是密钥。