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;
文件簡單的加解密
最新推荐文章于 2021-07-06 18:43:14 发布