Browse Source

rc4 performance regression fix

sanex3339 8 years ago
parent
commit
12378f2304
3 changed files with 7 additions and 7 deletions
  1. 3 3
      dist/index.js
  2. 2 2
      src/Utils.ts
  3. 2 2
      src/templates/custom-nodes/Rc4Template.ts

+ 3 - 3
dist/index.js

@@ -224,10 +224,10 @@ var Utils = function () {
                 j = 0,
                 x = void 0,
                 result = '';
-            for (var i = 0; i < 255; i++) {
+            for (var i = 0; i < 256; i++) {
                 s[i] = i;
             }
-            for (i = 0; i < 255; i++) {
+            for (i = 0; i < 256; i++) {
                 j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
                 x = s[i];
                 s[i] = s[j];
@@ -3934,7 +3934,7 @@ exports.AtobTemplate = AtobTemplate;
 "use strict";
 
 function Rc4Template() {
-    return "\n        function rc4 (str, key) {\n            var s = [], j = 0, x, res = '', newStr = '';\n           \n            str = atob(str);\n                \n            for (var k = 0, length = str.length; k < length; k++) {\n                newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n            }\n        \n            str = decodeURIComponent(newStr);\n                    \t        \n\t        for (var i = 0; i < 255; i++) {\n                s[i] = i;\n            }\n \n            for (i = 0; i < 255; i++) {\n                j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n                x = s[i];\n                s[i] = s[j];\n                s[j] = x;\n            }\n            \n            i = 0;\n            j = 0;\n            \n            for (var y = 0; y < str.length; y++) {\n                i = (i + 1) % 256;\n                j = (j + s[i]) % 256;\n                x = s[i];\n                s[i] = s[j];\n                s[j] = x;\n                res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n            }\n                      \n            return res;\n        }\n    ";
+    return "\n        var rc4 = function (str, key) {\n            var s = [], j = 0, x, res = '', newStr = '';\n           \n            str = atob(str);\n                \n            for (var k = 0, length = str.length; k < length; k++) {\n                newStr += '%' + ('00' + str.charCodeAt(k).toString(16)).slice(-2);\n            }\n        \n            str = decodeURIComponent(newStr);\n                    \t        \n\t        for (var i = 0; i < 256; i++) {\n                s[i] = i;\n            }\n \n            for (i = 0; i < 256; i++) {\n                j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n                x = s[i];\n                s[i] = s[j];\n                s[j] = x;\n            }\n            \n            i = 0;\n            j = 0;\n            \n            for (var y = 0; y < str.length; y++) {\n                i = (i + 1) % 256;\n                j = (j + s[i]) % 256;\n                x = s[i];\n                s[i] = s[j];\n                s[j] = x;\n                res += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n            }\n                      \n            return res;\n        }\n    ";
 }
 exports.Rc4Template = Rc4Template;
 

+ 2 - 2
src/Utils.ts

@@ -187,11 +187,11 @@ export class Utils {
             x: number,
             result: string = '';
 
-        for (var i = 0; i < 255; i++) {
+        for (var i = 0; i < 256; i++) {
             s[i] = i;
         }
 
-        for (i = 0; i < 255; i++) {
+        for (i = 0; i < 256; i++) {
             j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
             x = s[i];
             s[i] = s[j];

+ 2 - 2
src/templates/custom-nodes/Rc4Template.ts

@@ -14,11 +14,11 @@ export function Rc4Template (): string {
         
             str = decodeURIComponent(newStr);
                     	        
-	        for (var i = 0; i < 255; i++) {
+	        for (var i = 0; i < 256; i++) {
                 s[i] = i;
             }
  
-            for (i = 0; i < 255; i++) {
+            for (i = 0; i < 256; i++) {
                 j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
                 x = s[i];
                 s[i] = s[j];