function
Enc1(
const
Str:
string
):
string
;
var
i, j:
integer
;
begin
SetLength(Result, Length(Str) *
2
);
j :=
0
;
for
i :=
0
to
Length(Str) * sizeof(
char
) -
1
do
begin
PByte(Result)[i *
2
] := (PByte(Str)[i]
xor
XorKey1[j])
shr
4
+
48
;
PByte(Result)[i *
2
+
1
] := (PByte(Str)[i]
xor
XorKey1[j])
and
15
+
48
;
j := (j +
1
)
mod
8
;
end
;
end
;
function
Dec1(
const
Str:
string
):
string
;
var
i, j:
integer
;
begin
SetLength(Result, Length(Str)
div
2
);
j :=
0
;
for
i :=
0
to
Length(Result) * sizeof(
char
) -
1
do
begin
PByte(Result)[i] := ((PByte(Str)[i *
2
] -
48
)
shl
4
+
(PByte(Str)[i *
2
+
1
] -
48
)
and
15
)
xor
XorKey1[j];
j := (j +
1
)
mod
8
;
end
;
end
;