You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AM2R-The-Horde-Multitroid/Export_Code/gml_Script_rc4.gml

29 lines
583 B

var str, key, out, len, i, S, j, temp, pos, t;
str = argument0
key = argument1
out = ""
len = string_length(key)
for (i = 0; i < 256; i += 1)
S[i] = i
j = 0
for (i = 0; i < 256; i += 1)
{
j = (((j + S[i]) + ord(string_char_at(key, ((i % len) + 1)))) % 256)
temp = S[i]
S[i] = S[j]
S[j] = temp
}
i = 0
j = 0
for (pos = 0; pos < string_length(str); pos += 1)
{
i = ((i + 1) % 256)
j = ((j + S[i]) % 256)
temp = S[i]
S[i] = S[j]
S[j] = temp
t = ((S[i] + S[j]) % 256)
out += chr((ord(string_char_at(str, (pos + 1))) ^ S[t]))
}
return out;