David.Ko

Follow my heart!
posts - 100, comments - 11, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

编写一个加/解密程序

Posted on 2007-09-30 18:27 David.Ko 阅读(305) 评论(0)  编辑  收藏 所属分类: 安全
1。运行VC++6.0,"文件"--"新建",在工程下选择"win32 application","确定"后选择"a simple win32 application"完成.
2.双击"work space"中后缀为.cpp的文件,编写代码如下,注(程序自身已给出了一部分代码,补充完整就是了)

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

#include "stdafx.h"
#include "stdio.h"


int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  // TODO: Place code here.
    if(!strlen(lpCmdLine))
 {
  MessageBox(NULL,"请先选择文件,把文件拖进来!","出错了!",MB_ICONINFORMATION);
  return 0;
 }
 FILE *fp1,*fp2;
 fp1=fopen(lpCmdLine,"rb");
 if(fp1==NULL)
 {MessageBox(NULL,"文件无法打开!","出错了!",MB_ICONERROR);
 return 0;
}
 char stmpname[MAX_PATH];
 strcpy(stmpname,lpCmdLine);
 strcat(stmpname,".tmp");
 fp2=fopen(stmpname,"wb");
 if(fp2==NULL)
 {
  MessageBox(NULL,"文件无法写入!","出错了!",MB_ICONERROR);
  return 0;
 }
 char c=fgetc(fp1);
 char ch=0;
 while(!feof(fp1))
 {
  ch=c^233;
  fputc(ch,fp2);
  c=fgetc(fp1);
 }
 fclose(fp1);
 fclose(fp2);
 if(!DeleteFile(lpCmdLine))
 {
  DeleteFile(stmpname);
  MessageBox(NULL,"文件被占用!","出错了!",MB_ICONERROR);
  return 0;
 }
 MoveFile(stmpname,lpCmdLine);
 MessageBox(NULL,"加/解密已完成!","恭喜!",MB_ICONINFORMATION);


 return 0;
}

注意,17.cpp是我的文件名,将相关内容替换就是了。


3。如何用呢。

例如将一张hei.jpg的图片拖入编绎好的EXE文件,再运行一个这张图片,你会发现什么也没有了,图片被加密了,再将图片拖入EXE文件,然后再运运图片,显示正常,也就完成解密了。

直接双击运行会出错的!

图像原来的样子把图像拖进17.exe 后的成功提示,这里是加密成功了!!


再运行一下hei.jpg,提示"没有预揽",说明加密成功!

再将图片拖进17.exe,完成解密!!

再浏览一遍原图像.

有一个问题,就是我把它放在桌面上进行,它会提示文件无法打开的,但放在D盘又或者是其它盘却可以成功。


只有注册用户登录后才能发表评论。


网站导航: