一般采用异或,给你个参考: #include#include #include main() { void sc(char *fp,char *key,int flen,int klen); file *fp; char *pbuf,filename[20],key[20],ch; printf("请输入选择:a、加密 b、解密 c退出\n"); ch=getchar(); while(ch!='c'&&ch!='c') { if(ch=='a'||ch=='a'||ch=='b'||ch=='b') { printf("请输入要打开的文件名:\n"); scanf("%s",filename); if((fp=fopen(filename,"rb"))==null) {printf("无法打开文件,请注意输入后缀!\n"); exit(0); } fseek(fp,0,seek_end); int len=ftell(fp); pbuf=new char[len+1]; rewind(fp); fread(pbuf,1,len,fp); pbuf[len]=0; printf("%s\n",pbuf); fclose(fp); printf("请输入加密/解密的密码:\n"); scanf("%s",key); sc(pbuf,key,len,strlen(key)); printf("请输入保存加密文件的文件名:\n"); scanf("%s",filename); if((fp=fopen(filename,"wb"))==null) {printf("无法保存文件,请注意磁盘是否已满!\n"); exit(0); } else fwrite(pbuf,1,len,fp); fclose(fp); printf("请输入选择:a、加密 b、解密 c退出\n"); } else { printf("输入错误,请重新输入\n"); } ch=getchar(); ch=getchar(); } } void sc(char *fp,char *key,int flen,int klen) {int i,j,k; for(i=0;i