unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1 : TButton;
procedure Button1Click(Sender : TObject);
private
public
end;
var
Form1 : TForm1;
const
fMask = 'abcd';
implementation
{$R *.lfm}
{ TForm1 }
procedure MaskCrypt(p: {$IFDEF fpc}PByte{$ELSE}PByteArray{$ENDIF};
size: integer);
var i,
l : integer;
begin
l := length(FMask);
if l < 1 then exit;
for i := 0 to size - 1 do p[i] := p[i] xor byte(FMask[(i mod l) + 1]);
end;
procedure TForm1.Button1Click(Sender : TObject);
var
s : string;
begin
s := 'test';
MaskCrypt(@s[1], length(s));
end;
end.