BMP图片文件加密代码

来源:互联网 发布:淘宝全屏店铺装修模板 编辑:程序博客网 时间:2024/05/21 15:03

代码如下:  
  //说明:窗体上有两个Image、两个按钮、一个Edit(用于显示写了多少)。  
   
  //---------------------------------------------------------------------------  
   
  #include   <vcl.h>  
   
  #pragma   hdrstop  
   
  #include   "Unit1.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
      TMemoryStream   *pms=new   TMemoryStream();  
      Image1->Picture->Bitmap->SaveToStream(pms);  
      int   N=pms->Size;  
      pms->Position=0;  
   
      char   *buffer=new   char[N+1]   ;  
   
      pms->ReadBuffer(buffer,N*sizeof(char));  
   
      //对数据进行加密;  
      //.....  
        //开始写文件  
   
        int   fhwnd;  
        String   sfile="PICME.DAT";  
        if   (!FileExists(sfile))  
        {  
                  fhwnd=FileCreate(sfile);  
                  FileClose(fhwnd);  
        }  
        fhwnd=FileOpen(sfile,fmOpenWrite);  
        FileSeek(fhwnd,0,2);         //移动到文件尾;  
        Edit1->Text   =   (sizeof(char)*N);  
        FileWrite(fhwnd,buffer,sizeof(char)*N);  
        FileClose(fhwnd);  
   
        delete   []buffer;  
   
        delete   pms;  
   
   
   
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Button2Click(TObject   *Sender)  
  {  
          TMemoryStream   *pms=new   TMemoryStream();  
          String   sfile="PICME.DAT";  
          char   *buffer;  
   
          int   fhwnd,   iFileLength,N;  
          fhwnd=FileOpen(sfile,fmOpenRead);  
          iFileLength   =   FileSeek(fhwnd,0,2);  
          FileSeek(fhwnd,0,0);  
          N=(iFileLength+1)/sizeof(char);  
          buffer=new   char[N+1];  
          FileRead(fhwnd,buffer,sizeof(char)*N);  
   
          //对数据进行解密;  
          //...  
   
          //  
          pms->Size=N;  
          pms->WriteBuffer(buffer,N*sizeof(char));  
          pms->Position=0;  
   
   
          Image2->Picture->Bitmap->LoadFromStream(pms);  
          FileClose(fhwnd);  
          delete   []buffer;  
           
          delete   pms;  
                   
  }  
  //---------------------------------------------------------------------------  

 

 

 其实,你如果要最最最简单的不让别人直接看出来,你把这二处:  
  FileSeek(……);  
  改成:    
  FileSeek(fhwnd,1024,0);  
  就完事。  
  这样,你存出来的图片因为不是从文件的第一个字节开始的,所以不合符标准,这样,别人就会发晕了。  
   
  当然,如果别人足够聪明,用十六进制软件打开生成的这个文件,然后猜出来了偏移量,那就没得说了,哈哈。  

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 喉咙被鱼刺卡了怎么办 喉咙里卡了鱼刺怎么办 卡了鱼刺在喉咙怎么办 日剧 哥哥太爱我怎么办 被竹叶青蛇咬了怎么办 被眼镜王蛇咬了怎么办 被黄蜂蛰了怎么办消肿 被黑色黄蜂蜇了怎么办 手指被黄蜂蛰了怎么办 被马蜂蛰了肿了怎么办 给青竹蛇咬了怎么办 被青竹蛇咬了怎么办 孕早期吃了桂皮怎么办? 怀孕后吃了八角怎么办 孕妇吃了点八角怎么办 煮粥老是溢出来怎么办 6个月的小孩咳嗽怎么办 10个月婴儿咳嗽怎么办 6个月婴儿感冒了怎么办 六个月宝宝有痰怎么办 9月婴儿牛奶过敏怎么办 一用粉底就过敏怎么办 7个月婴儿过敏怎么办 9个月宝宝腹泻怎么办 9个月宝宝拉肚子怎么办 5个月宝宝拉肚子怎么办 九个月大宝宝拉肚子怎么办 九个半月的宝宝拉肚子怎么办 9个月婴儿拉稀怎么办 九个月的宝宝拉肚子怎么办 9个月宝宝拉稀水怎么办 2岁宝宝腹泻拉水怎么办 18个月宝宝拉水怎么办 2个月宝宝拉稀水怎么办 2个月的宝宝腹泻怎么办 2个月的宝宝拉稀怎么办 宝宝不喝补液盐怎么办 4个月宝宝腹泻怎么办 6个月宝宝腹泻怎么办 四个月的宝宝拉肚子怎么办 7个月婴儿便秘怎么办