谁帮帮我这个菜鸟

HAOXUESHENG 2005-01-22 02:59:34
谁帮帮我这个菜鸟
下面是一段加解密程序,加密或解密后生成一个新文件,我想达到两个效果
1 对原文件加解密后不生成新文件(是同一文件)
2 解密到内存中运行,硬盘上不生成解密的文件
请大侠们给解决以上一个或两个问题---感激不尽

// AAA.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include <windows.h>
void dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
char in_fname[]="eee.exe";/*要加密的文件名*/
char out_fname[]="FFF.exe";//加密后形成的文件
char pwd[7]="1a38D6";/*用来保存密码*/
dofile(in_fname,pwd,out_fname);
return 0;
}


/*加密子函数开始*/
void dofile(char *in_fname,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;
fp1=fopen(in_fname,"rb");
if(fp1==NULL){
printf("cannot open in-file.\n");
exit(1);/*如果不能打开要加密的文件,便退出程序*/
}
fp2=fopen(out_file,"wb");
if(fp2==NULL){
printf("cannot open or create out-file.\n");
exit(1);/*如果不能建立加密后的文件,便退出*/
}
while(pwd[++j0]);
ch=fgetc(fp1);

/*加密算法开始*/
while(!feof(fp1)){
if(j0>6)
j0=0;
//fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/
fputc(ch^pwd[j],fp2);
ch=fgetc(fp1);
}
fclose(fp1);/*关闭源文件*/
fclose(fp2);/*关闭目标文件*/
//
}
...全文
97 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧