跪求c语言编程问题 文件移位加密与解密 急!

将某一已知文件的内容(仅限于英文字母)以字符形式读出,根据密钥(用户从键盘输入)将对应字符进行移位操作即可,解密时移动相反。如加密:设原文为abcdef,密钥为5,则有abcdef每个字母按字母表向后移动5们(注:z后接a)可得到密文(乱码)fghijkl。对该文件解密:文件内容为fghijk1,密钥为5,则有fghijk1每个字母向前移动5位(注a后接z),可得到原文abcdef。

#include<stdio.h>
#include <string.h>
char JiaMi(char ch,int n1)
{
ch+=n1;
if(ch>'z')
return ch-'z'+'a'-1;
if(ch>'Z'&&ch<'a')
return ch-'Z'+'A'-1;
else return ch;
}
char JieMi(char c,int n2)
{
c=c-n2;
if(c>'Z'&&c<'a')
return c+'z'-'a'+1;
if(c<'A')
return c-'A'+'Z'+1;
else return c;
}
int main()
{
char s[100];
int key;
printf("Input data:\n");
gets(s);
printf("Input key:\n");
scanf("%d",&key);
for(int i=0;i < strlen(s);i++)
s[i]=JiaMi(s[i],key);
printf("加密后:\n");
puts(s);
for(int i=0;i < strlen(s);i++)
s[i]=JieMi(s[i],key);
printf("解密后:\n");
puts(s);
return 0;
}
这样处理差不多了。。自己看看 改改
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-07
直接加减运算下
第2个回答  2012-02-07
这个不难啊

求大神给一个C语言模块设计的题目,只要题目
1. 输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行,每一列对角线之和均相等。例如,三阶魔方阵为:8 1 6 3 5 7 4 9 2 要求输出1至n2的自然数构成的魔方阵。2.给出年、月、日,计算该日是该年的第几天。3.移位加密与解密 (1)文件加密 (2)文件解密 说...

c语言文件加密和解密
c语言文件加密和解密方法如下:1、首先打开VC++6.0;2、选择文件,新建;3、选择C++ source file 新建一个空白文档;4、声明头文件 include<stdio.h> include<stdlib.h> include<string.h> 首先写个加密函数,算法就是简介里说的;void EncryptFile(FILE *sfp,FILE *dfp,char pwd){char ch;if(...

c语言 加密或解密一个文件程序出现的问题
void read(){ char sname[20];int j=0;printf("输入要加密或解密文本的文件名");scanf("%s",sname);if((fp=fopen(sname,"r"))==NULL){printf("Cannot open the file\\n");exit(0);} \/\/fscanf(fp,"%s",ch);while(!feof(fp)){ch[j]=fgetc(fp);j++;} ch[j]='\\0';\/\/fclos...

跪求c语言,按位取反文件加密的源代码。最好有注释
输入原始文件和目标文件 进行加密 然后再执行程序 输入刚才得到的加密文件以及新的目标文件名 进行解密 include <stdio.h>int main(){char name[100];int c;FILE *fp1, *fp2;printf("input source file name:");scanf("%s",name);fp1 = fopen(name, "rb");if(fp1 == NULL) {printf("ca...

将凯撒密码X的加密、解密过程用C语言编程实现
){ return ('a'+(ch-'a'+n)%26);}return ch;}void menu()\/*菜单,1.加密,2.解密,3.暴力破解,密码只能是数字*\/{clrscr();printf("\\n===");printf("\\n1.Encrypt the file");printf("\\n2.

用C语言编程恺撒密码加密解密程序
include <stdio.h>#define isletter( c ) ( ((c)>='a'&&(c)<='z') || ((c)>='A'&&(c)<='Z') )void Enc( const char *str, char *out, int key ){ int i = 0; while( str[i] ) { if ( isletter( str[i] ) ) { out[i] = str[i] +...

高分求编程题程序(C语言)
int c=0;while(b.tail!=0){ printf("%d",b.tail->d);c++;b.tail=b.tail->previous;} printf("\\n");printf("%d digits in total.\\n",c);} void free_memory(BigInt *b){ Digit *p;while(b->head!=0){ p=b->head->next;free(b->head);b->head=p;} b->head=0;b->...

异或加密与解密(C语言)注释
异或运算有一个特性 若 c = a xor b 那么 a = c xor b 根据这样的特性,你有一个信息a,然后你产生一个密码b,把它和a异或运算之后就变成了c。这就是一种加密,解密的时候,把c重新和b异或运算,就变回了a。顺带说一下,异或是很弱的加密方法,很容易被破解的。

C++代码 加密解密“恺撒密码” 要做界面
纯手工写,下面的我写的两个加密与解密的函数,LZ只要放到你的button按钮代码的同一文件里就可以了,LZ可以在点击加密的时候先获取textbox1的值,再调用encoder函数,然后把返回值写到textbox2里,解密同理。我这里MFC跑不起来 include <iostream> include<string> using namespace std;string encode="...

C语言考试中如何解答四位数移位计算问题?
第4章,四位数计算,涉及奇偶性统计、方差问题、移位计算等,通过实际问题训练四位数的运算技巧。第5章,字符串处理,内容丰富,包括字符替代、排序、加密解密等,强化字符串操作和处理能力。第6章,结构体数组排序,讲解如何对结构体数据进行排序,以及特定问题的求解,如最高分学生的查找。第7章,选票类...

相似回答
大家正在搜