加解密多媒体文件

                            
procedure   FileXor(qFileName   :   String);         //加解密函数   
  var  
          fd   :   array[1..1024]   of   byte;  
          hf   :   integer;  
          br   :   Integer;  
          i   :   Integer;  
  begin  
          hf:=fileopen(qFileName,fmOpenReadWrite);  
        if   hf   <>   -1   then  
          begin  
                    FileSeek(hf,0,0);  
                    br   :=FileRead(hf,   fd,   1024);  
                    for   i   :=   1   to   br   do  
                    begin  
                          fd[i]   :=   (fd[i])   xor   (i   mod   $ff);  
                    end;  
                    FileSeek(hf,0,0);  
                    filewrite(hf,fd,   br);  
          end;  
          FileClose(hf);  
  end;  
  FORM的CREATE事件里:  
      filexor(‘c:\pin.mpg');           //解密MPG文件  
      mpp:=cvideo.Create(self);  //生成播放MPG控件  
      try   
            mpp.ReadFile(‘c:\pin.mpg',0);  
      finally  
          filexor(‘c:\pin.mpg');  //重新加密MPG文件  
      end;  
   
      mpp.free;  
   
  因为MPG文件正在被使用,所以后来想重新加密MPG文件不成功。只有在MPP.FREE后面再加密这个文件才可以。但我在程序中还需要用到这个录象文件,不能马上释放,如果不马上把这个文件加密,程序突然中断,我的录象就相当于没加密了,请问怎么解决。  
  一般的录象加密是怎么做的,程序中是怎么解密并运行的,能给个例子吗  
   
 

查看回复