| 12345678910111213141516171819202122232425262728 |
- export class RC4 {
- public static rc4(data: string, key: string) {
- var seq: number[] = Array(256); //int
- var das = Array(data.length); //code of data
- var i = 0;
- var j = 0;
- for (var i = 0; i < 256; i++) {
- seq[i] = i;
- j = (j + seq[i] + key.charCodeAt(i % key.length)) % 256;
- var temp = seq[i];
- seq[i] = seq[j];
- seq[j] = temp;
- }
- for (var i = 0; i < data.length; i++) {
- das[i] = data.charCodeAt(i)
- }
- for (var x = 0; x < das.length; x++) {
- i = (i + 1) % 256;
- j = (j + seq[i]) % 256;
- var temp = seq[i];
- seq[i] = seq[j];
- seq[j] = temp;
- var k = (seq[i] + (seq[j] % 256)) % 256;
- das[x] = String.fromCharCode(das[x] ^ seq[k]);
- }
- return das.join('');
- }
- }
|