fork download
  1. program ideone;
  2.  
  3. function DecodeBase64(Value: String): String;
  4. const b64alphabet: PChar = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  5. function DecodeChunk(const Chunk: String): String;
  6. var
  7. W: LongWord;
  8. i: Byte;
  9. Result: String;
  10. begin
  11. W := 0; Result := '';
  12. for i := 1 to 4 do
  13. if Pos(Chunk[i], b64alphabet) <> 0 then
  14. W := W + Word((Pos(Chunk[i], b64alphabet) - 1)) shl ((4 - i) * 6);
  15. for i := 1 to 3 do
  16. Result := Result + Chr(W shr ((3 - i) * 8) and $ff);
  17. DecodeChunk := Result;
  18. end;
  19. var Result1: String;
  20. begin
  21. Result1 := '';
  22. if Length(Value) mod 4 <> 0 then Exit;
  23. while Length(Value) > 0 do
  24. begin
  25. Result1 := Result1 + DecodeChunk(Copy(Value, 0, 4));
  26. Delete(Value, 1, 4);
  27. end;
  28. DecodeBase64 := Result1;
  29. end;
  30.  
  31. var rkey: string;
  32. ttext: string;
  33. i: integer;
  34. begin
  35. rkey := 'Mozilla/5.0 (Windows NT 6595d22397c0b1998.VO1MmJfamekbMplQO3URqsOY-fp5VDKdVYPfZLAQUIz85hA2Aod_OJ7Vz5cVtSuUXaMoByuHOA3VWwNKP_d_RVXBg34uVCCyvY1D9AbxwDqJ5HjCy91NgAQbjM-k5WIc87a9ad7bee75';
  36. ttext := 'aFg4TF5eAkBbWlVOXHJbXEFcNlYXDHESBFZMRxZXXEdpVgRVRwMLHAtvc30DfEh4VERfJk5QfxwNIjtmJTYQByp8H1RVBhdheVZzHWBDYwpkFWVsOH0Q';
  37. ttext := DecodeBase64(ttext);
  38. for i := 1 to length(ttext) do
  39. ttext[i] := chr(ord(ttext[i]) xor ord(rkey[((i-1) mod length(rkey)) + 1]));
  40. WriteLn(ttext);
  41. end.
Success #stdin #stdout 0s 340KB
stdin
Standard input is empty
stdout
%7B%22content%22%3A%7B%22currentPage%22%3A%221%22%2C%22lastUpdate%22%3A%22%D0%9F%D0%BE%