Advertisement
Guest User

Client

a guest
Mar 17th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. local EncrKey = "AKOFSJNPOAILSFN"
  2. local Remote = game.JointsService:WaitForChild("RemoteThing")
  3.  
  4. function decrypt(cipher, key)
  5. local key_bytes
  6. if type(key) == "string" then
  7. key_bytes = {}
  8. for key_index = 1, #key do
  9. key_bytes[key_index] = string.byte(key, key_index)
  10. end
  11. else
  12. key_bytes = key
  13. end
  14. local cipher_raw_length = #cipher
  15. local key_length = #key_bytes
  16. local cipher_bytes = {}
  17. local cipher_length = 0
  18. local cipher_bytes_index = 1
  19. for byte_str in string.gmatch(cipher, "%x%x") do
  20. cipher_length = cipher_length + 1
  21. cipher_bytes[cipher_length] = tonumber(byte_str, 16)
  22. end
  23. local random_bytes = {}
  24. local random_seed = 0
  25. for key_index = 1, key_length do
  26. random_seed = (random_seed + key_bytes[key_index] * key_index) * 1103515245 + 12345
  27. random_seed = (random_seed - random_seed % 65536) / 65536 % 4294967296
  28. end
  29. for random_index = 1, (cipher_length - key_length + 1) * key_length do
  30. random_seed = (random_seed % 4194304 * 1103515245 + 12345)
  31. random_bytes[random_index] = (random_seed - random_seed % 65536) / 65536 % 256
  32. end
  33. local random_index = #random_bytes
  34. local last_key_byte = key_bytes[key_length]
  35. local result_bytes = {}
  36. for cipher_index = cipher_length, key_length, -1 do
  37. local result_byte = cipher_bytes[cipher_index] - last_key_byte
  38. if result_byte < 0 then
  39. result_byte = result_byte + 256
  40. end
  41. result_byte = result_byte - random_bytes[random_index]
  42. random_index = random_index - 1
  43. if result_byte < 0 then
  44. result_byte = result_byte + 256
  45. end
  46. for key_index = key_length - 1, 1, -1 do
  47. cipher_index = cipher_index - 1
  48. local cipher_byte = cipher_bytes[cipher_index] - key_bytes[key_index]
  49. if cipher_byte < 0 then
  50. cipher_byte = cipher_byte + 256
  51. end
  52. cipher_byte = cipher_byte - result_byte
  53. if cipher_byte < 0 then
  54. cipher_byte = cipher_byte + 256
  55. end
  56. cipher_byte = cipher_byte - random_bytes[random_index]
  57. random_index = random_index - 1
  58. if cipher_byte < 0 then
  59. cipher_byte = cipher_byte + 256
  60. end
  61. cipher_bytes[cipher_index] = cipher_byte
  62. end
  63. result_bytes[cipher_index] = result_byte
  64. end
  65. local result_characters = {}
  66. for result_index = 1, #result_bytes do
  67. result_characters[result_index] = string.char(result_bytes[result_index])
  68. end
  69. return table.concat(result_characters)
  70. end
  71. function encrypt(message, key)
  72. local key_bytes
  73. if type(key) == "string" then
  74. key_bytes = {}
  75. for key_index = 1, #key do
  76. key_bytes[key_index] = string.byte(key, key_index)
  77. end
  78. else
  79. key_bytes = key
  80. end
  81. local message_length = #message
  82. local key_length = #key_bytes
  83. local message_bytes = {}
  84. for message_index = 1, message_length do
  85. message_bytes[message_index] = string.byte(message, message_index)
  86. end
  87. local result_bytes = {}
  88. local random_seed = 0
  89. for key_index = 1, key_length do
  90. random_seed = (random_seed + key_bytes[key_index] * key_index) * 1103515245 + 12345
  91. random_seed = (random_seed - random_seed % 65536) / 65536 % 4294967296
  92. end
  93. for message_index = 1, message_length do
  94. local message_byte = message_bytes[message_index]
  95. for key_index = 1, key_length do
  96. local key_byte = key_bytes[key_index]
  97. local result_index = message_index + key_index - 1
  98. local result_byte = message_byte + (result_bytes[result_index] or 0)
  99. if result_byte > 255 then
  100. result_byte = result_byte - 256
  101. end
  102. result_byte = result_byte + key_byte
  103. if result_byte > 255 then
  104. result_byte = result_byte - 256
  105. end
  106. random_seed = (random_seed % 4194304 * 1103515245 + 12345)
  107. result_byte = result_byte + (random_seed - random_seed % 65536) / 65536 % 256
  108. if result_byte > 255 then
  109. result_byte = result_byte - 256
  110. end
  111. result_bytes[result_index] = result_byte
  112. end
  113. end
  114. local result_buffer = {}
  115. local result_buffer_index = 1
  116. for result_index = 1, #result_bytes do
  117. local result_byte = result_bytes[result_index]
  118. result_buffer[result_buffer_index] = string.format("%02x", result_byte)
  119. result_buffer_index = result_buffer_index + 1
  120. end
  121. return table.concat(result_buffer)
  122. end
  123.  
  124. print("Invoking")
  125.  
  126. Remote:InvokeServer(EncrKey,encrypt("Print",EncrKey),encrypt("Okay we want this to print",EncrKey))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement