You've already forked AM2R-Community-Updates
mirror of
https://github.com/izzy2lost/AM2R-Community-Updates.git
synced 2026-03-10 11:23:35 -07:00
30 lines
635 B
Plaintext
30 lines
635 B
Plaintext
/// rc4()
|
|
// https://en.wikipedia.org/wiki/RC4
|
|
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;
|