[Back to ENCRYPT SWAG index] [Back to Main SWAG index] [Original]
{
I give you a simple encrypting/decrypting algoritm (it's easy to decrypt
it with a descent program). }
Procedure Encrypt(Var Data; Length: Word; Key: Byte);
Var B: Byte;
i: Word;
Begin
For i := 0 to Length-1 do
Begin
B := Mem[Seg(Data):Ofs(Data)+i];
B := 255 - (B + Key);
Mem[Seg(Data):Ofs(Data)+i] := B;
end; { For }
end;
If You like assembler:
Procedure Encrypt(Var Data; Length: Word; Key: Byte); ASSEMBLER;
ASM
MOV CX,Length
DEC CX
MOV BL,Key
LES DI,Data
@@Loop1:
MOV AL,BYTE PTR ES:[DI]
MOV BH,AL
ADD BH,BL
MOV AL,255
SUB AL,BH
MOV BYTE PTR ES:[DI],AL
INC DI
LOOP @@Loop1
end;
Procedure Decrypt(Var Data; Length: Word; Key: Byte);
Var i: Word;
B: Byte;
Begin
For i := 0 to Length-1 do
Begin
B := Mem[Seg(Data):Ofs(Data)+i];
B := 255 - B + Key;
Mem[Seg(Data):Ofs(Data)+i];
end;{ For }
end;
Or:
Procedure Decrypt(Var Data; Length: Word; Key: Byte); ASSEMBLER;
ASM
MOV CX,Length
DEC CX
MOV BL,Key
LES DI,Data
@@Loop1:
MOV AL,BYTE PTR ES:[DI]
MOV BH,AL
ADD BH,BL
MOV AL,255
SUB AL,BH
MOV BYTE PTR ES:[DI],AL
INC DI
LOOP @@Loop1
end;
{ Key in the procedure Encrypt and Decrypt should be the same. }
[Back to ENCRYPT SWAG index] [Back to Main SWAG index] [Original]