Paul 5 年前
父节点
当前提交
22275e3f0d
共有 4 个文件被更改,包括 40 次插入37 次删除
  1. 1
    0
      dist/types/utils.d.ts
  2. 15
    15
      dist/utils.js
  3. 1
    1
      dist/utils.js.map
  4. 23
    21
      src/utils.ts

+ 1
- 0
dist/types/utils.d.ts 查看文件

9
     static base64ToBin(str: string): string;
9
     static base64ToBin(str: string): string;
10
     static stringToBin(str: string): string;
10
     static stringToBin(str: string): string;
11
     static binToString(bin: string): string;
11
     static binToString(bin: string): string;
12
+    private static makeCRCTable;
12
 }
13
 }
13
 export { Utils };
14
 export { Utils };

+ 15
- 15
dist/utils.js 查看文件

1
 "use strict";
1
 "use strict";
2
 exports.__esModule = true;
2
 exports.__esModule = true;
3
 var crypto_js_1 = require("crypto-js");
3
 var crypto_js_1 = require("crypto-js");
4
-var makeCRCTable = function () {
5
-    var c;
6
-    var crcTable = [];
7
-    for (var n = 0; n < 256; n++) {
8
-        c = n;
9
-        for (var k = 0; k < 8; k++) {
10
-            c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
11
-        }
12
-        crcTable[n] = c;
13
-    }
14
-    return crcTable;
15
-};
16
 var Utils = /** @class */ (function () {
4
 var Utils = /** @class */ (function () {
17
     function Utils() {
5
     function Utils() {
18
     }
6
     }
19
     Utils.crc32 = function (str) {
7
     Utils.crc32 = function (str) {
20
-        var crcTable = window.crcTable || (window.crcTable = makeCRCTable());
8
+        var crcTable = window.crcTable || (window.crcTable = Utils.makeCRCTable());
21
         var crc = 0 ^ -1;
9
         var crc = 0 ^ -1;
22
         for (var i = 0; i < str.length; i++) {
10
         for (var i = 0; i < str.length; i++) {
23
             crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xff];
11
             crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xff];
75
         var bitStringTemp2 = bitString.substr(bitString.length - tail, tail);
63
         var bitStringTemp2 = bitString.substr(bitString.length - tail, tail);
76
         for (var i = 0; i < bitStringTemp1.length; i += 6) {
64
         for (var i = 0; i < bitStringTemp1.length; i += 6) {
77
             var index = parseInt(bitStringTemp1.substr(i, 6), 2);
65
             var index = parseInt(bitStringTemp1.substr(i, 6), 2);
78
-            result += this.code[index];
66
+            result += Utils.code[index];
79
         }
67
         }
80
         bitStringTemp2 += new Array(7 - tail).join('0');
68
         bitStringTemp2 += new Array(7 - tail).join('0');
81
         if (tail) {
69
         if (tail) {
82
-            result += this.code[parseInt(bitStringTemp2, 2)];
70
+            result += Utils.code[parseInt(bitStringTemp2, 2)];
83
             result += new Array((6 - tail) / 2 + 1).join('=');
71
             result += new Array((6 - tail) / 2 + 1).join('=');
84
         }
72
         }
85
         return result;
73
         return result;
116
         }
104
         }
117
         return result;
105
         return result;
118
     };
106
     };
107
+    Utils.makeCRCTable = function () {
108
+        var c;
109
+        var crcTable = [];
110
+        for (var n = 0; n < 256; n++) {
111
+            c = n;
112
+            for (var k = 0; k < 8; k++) {
113
+                c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
114
+            }
115
+            crcTable[n] = c;
116
+        }
117
+        return crcTable;
118
+    };
119
     Utils.code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
119
     Utils.code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
120
     return Utils;
120
     return Utils;
121
 }());
121
 }());

+ 1
- 1
dist/utils.js.map
文件差异内容过多而无法显示
查看文件


+ 23
- 21
src/utils.ts 查看文件

1
 import { AES, enc, mode, pad } from 'crypto-js';
1
 import { AES, enc, mode, pad } from 'crypto-js';
2
 
2
 
3
-const makeCRCTable = function() {
4
-  var c;
5
-  var crcTable = [];
6
-  for (var n = 0; n < 256; n++) {
7
-    c = n;
8
-    for (var k = 0; k < 8; k++) {
9
-      c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
10
-    }
11
-    crcTable[n] = c;
12
-  }
13
-  return crcTable;
14
-};
15
-
16
 class Utils {
3
 class Utils {
17
   private static code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(
4
   private static code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(
18
     '',
5
     '',
20
 
7
 
21
   public static crc32(str: string): number {
8
   public static crc32(str: string): number {
22
     let crcTable =
9
     let crcTable =
23
-      (<any>window).crcTable || ((<any>window).crcTable = makeCRCTable());
10
+      (<any>window).crcTable || ((<any>window).crcTable = Utils.makeCRCTable());
24
     let crc = 0 ^ -1;
11
     let crc = 0 ^ -1;
25
 
12
 
26
     for (let i = 0; i < str.length; i++) {
13
     for (let i = 0; i < str.length; i++) {
49
   }
36
   }
50
 
37
 
51
   // 字符串转为 ArrayBuffer 对象,参数为字符串
38
   // 字符串转为 ArrayBuffer 对象,参数为字符串
52
-  static str2ab(str: string): ArrayBuffer {
39
+  public static str2ab(str: string): ArrayBuffer {
53
     let buf = new ArrayBuffer(str.length); // 每个字符占用2个字节
40
     let buf = new ArrayBuffer(str.length); // 每个字符占用2个字节
54
     let bufView = new Uint8Array(buf);
41
     let bufView = new Uint8Array(buf);
55
 
42
 
61
   }
48
   }
62
 
49
 
63
   // 解密服务端传递过来的字符串
50
   // 解密服务端传递过来的字符串
64
-  static decrypt(data: string, key: string, iv: string): string {
51
+  public static decrypt(data: string, key: string, iv: string): string {
65
     const binData = Utils.stringToBin(data);
52
     const binData = Utils.stringToBin(data);
66
     const base64Data = Utils.binToBase64(binData);
53
     const base64Data = Utils.binToBase64(binData);
67
 
54
 
75
   }
62
   }
76
 
63
 
77
   // 加密字符串以后传递到服务端
64
   // 加密字符串以后传递到服务端
78
-  static encrypt(data: string, key: string, iv: string): string {
65
+  public static encrypt(data: string, key: string, iv: string): string {
79
     const result = AES.encrypt(data, enc.Latin1.parse(key), {
66
     const result = AES.encrypt(data, enc.Latin1.parse(key), {
80
       iv: enc.Latin1.parse(iv),
67
       iv: enc.Latin1.parse(iv),
81
       mode: mode.CBC,
68
       mode: mode.CBC,
86
   }
73
   }
87
 
74
 
88
   // 字节数组转换为base64编码
75
   // 字节数组转换为base64编码
89
-  static binToBase64(bitString: string): string {
76
+  public static binToBase64(bitString: string): string {
90
     let result = '';
77
     let result = '';
91
     let tail = bitString.length % 6;
78
     let tail = bitString.length % 6;
92
     let bitStringTemp1 = bitString.substr(0, bitString.length - tail);
79
     let bitStringTemp1 = bitString.substr(0, bitString.length - tail);
94
 
81
 
95
     for (let i = 0; i < bitStringTemp1.length; i += 6) {
82
     for (let i = 0; i < bitStringTemp1.length; i += 6) {
96
       let index = parseInt(bitStringTemp1.substr(i, 6), 2);
83
       let index = parseInt(bitStringTemp1.substr(i, 6), 2);
97
-      result += this.code[index];
84
+      result += Utils.code[index];
98
     }
85
     }
99
 
86
 
100
     bitStringTemp2 += new Array(7 - tail).join('0');
87
     bitStringTemp2 += new Array(7 - tail).join('0');
101
     if (tail) {
88
     if (tail) {
102
-      result += this.code[parseInt(bitStringTemp2, 2)];
89
+      result += Utils.code[parseInt(bitStringTemp2, 2)];
103
       result += new Array((6 - tail) / 2 + 1).join('=');
90
       result += new Array((6 - tail) / 2 + 1).join('=');
104
     }
91
     }
105
 
92
 
107
   }
94
   }
108
 
95
 
109
   // base64编码转换为字节数组
96
   // base64编码转换为字节数组
110
-  static base64ToBin(str: string): string {
97
+  public static base64ToBin(str: string): string {
111
     let bitString = '';
98
     let bitString = '';
112
     let tail = 0;
99
     let tail = 0;
113
 
100
 
143
 
130
 
144
     return result;
131
     return result;
145
   }
132
   }
133
+
134
+  private static makeCRCTable(): number[] {
135
+    let c: number;
136
+    let crcTable: number[] = [];
137
+
138
+    for (let n = 0; n < 256; n++) {
139
+      c = n;
140
+      for (let k = 0; k < 8; k++) {
141
+        c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
142
+      }
143
+      crcTable[n] = c;
144
+    }
145
+
146
+    return crcTable;
147
+  }
146
 }
148
 }
147
 
149
 
148
 export { Utils };
150
 export { Utils };