文件簡單的加解密

来源:互联网 发布:unity3d官方教程 编辑:程序博客网 时间:2024/04/29 07:26

procedure LockAndUnLock(FileID: string; InStrPwd: string);
var
  iFileHandle: Integer;
  iFileLength: Integer;
  iBytesRead: Integer;
  Buffer: PChar;
  iReadID, CodeID: Integer;
  iPosPwd: Integer;
  StrPwd: string;
  chPwd: Char;
begin
  StrPwd := InStrPwd;
  if StrPwd = '' then StrPwd := 'Martin';
  iFileLength := FileSizeByName(FileID);
  iFileHandle := FileOpen(FileID, fmOpenReadWrite);
  FileSeek(iFileHandle, 0, 0);
  Buffer := PChar(AllocMem(iFileLength + 1));
  iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength);
  for iReadID := 0 to IFileLength do
  begin  
      chPwd := StrPwd[iReadID mod Length(Strpwd)];
      CodeID := not ORD(Buffer[iReadID]) + not Ord(chPwd);
      Buffer[iReadID] := Chr(CodeID);
  end;
  FileSeek(iFileHandle, 0, 0);
  FileWrite(iFileHandle, Buffer^, iFileLength);
  FileClose(iFileHandle);
end;

原创粉丝点击