Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.28 KB | None | 0 0
  1. function EncryptIPAdress(Adress: String; Passcode: Word): TIPCode;
  2. var
  3.   OutputString: TIPCode;
  4.  
  5.   i: Integer;
  6.   OldIndex: Integer;
  7.   NewIndex: Integer;
  8.  
  9.   InputInteger: uint64;
  10.   TempByte: uint64;
  11. begin
  12.   Result := '';
  13.   NewIndex := 0;
  14.   InputInteger := 0;
  15.   Adress := Adress + '.';
  16.  
  17.   for i := 0 to 3 do begin
  18.     OldIndex := NewIndex;
  19.     NewIndex:=Pos('.',Adress,OldIndex+1);
  20.     TempByte:= StrToInt(Copy(Adress,OldIndex+1,NewIndex-OldIndex-1));
  21.     InputInteger := InputInteger or (TempByte shl (i*8));
  22.   end;
  23.  
  24.   InputInteger := InputInteger + (uint64(Passcode) * 4294967296);
  25.  
  26.   for i := 0 to 9 do begin
  27.     OutputString[i]:=CustomCharset[InputInteger div Round(IntPower(24,i)) mod 24];
  28.   end;
  29.   Result:=OutputString;
  30. end;
  31.  
  32. procedure DecryptIPCode(IpCode: String; var Adress: String; var Passcode: Word); overload;
  33. var
  34.   i: Integer;
  35.   OutputInteger: uint64;
  36.   AdressInt: uint64;
  37. begin
  38.   OutputInteger := 0;
  39.   for i := 0 to 9 do begin
  40.     OutputInteger := OutputInteger + GetCharIndex(IpCode[i+1]) * Round(IntPower(24,i));
  41.   end;
  42.  
  43.   Passcode := OutputInteger div 4294967296;
  44. //  AdressInt
  45.  
  46. {  for i := 0 to 3 do begin
  47.     if i > 0 then Adress := Adress + '.';
  48.     Adress := Adress + IntToStr(OutputInteger div Round(IntPower(256,i)) mod 256);
  49.   end;}
  50. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement