月球大数据地理空间分析展示平台-【后端】-月球后台服务
13693261870
2023-06-02 c31e03f0e51214a524d3fc34d30f3459698ff625
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
package com.moon.server.entity.other;
 
import org.apache.commons.codec.binary.Hex;
 
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Random;
 
/**
 *  CheckOutLicense
 * @author WWW
 */
@SuppressWarnings("AlibabaUndefineMagicConstant")
public class CheckOutLicense {
    public static String createFloatingLicense(int n, String s, long expireDate) {
        int[] registeredModules = new int[]{1, 3, 4, 9, 10, 11, 12, 13, 17, 25, 30, 33, 37};
 
        long n2;
        if ((n2 = System.currentTimeMillis() + 86400000L) > expireDate) {
            n2 = expireDate;
        }
 
        CheckOutLicense e = new CheckOutLicense();
        e.a(n2);
        e.a(n);
        e.cc(s);
        e.a(registeredModules);
 
        return e.aaa(e);
    }
 
    public String aaa(final CheckOutLicense b) {
        final CheckOutLicense e = b;
        return new String(a(e.a, e.b, e.c)) + new bb().a(new StringBuilder().append(e.ee()).toString());
    }
 
    private char[] a(final long n, final int[] array, final int i) {
        final char[] array2 = new char[48];
        final String b = b(n);
        final String value = String.valueOf(i);
 
        final bb b2 = new bb();
        final String a = b2.a(b);
        final String a2 = b2.a(value);
 
        final cc c = new cc();
        for (int j = 0; j < array.length; ++j) {
            c.b(array[j]);
        }
 
        final char[] a3 = c.a();
        for (int k = 0; k < 16; ++k) {
            array2[k * 3] = a3[k];
            array2[k * 3 + 1] = a.charAt(k);
            array2[k * 3 + 2] = a2.charAt(k);
        }
        return array2;
    }
 
    private static String b(final long timeInMillis) {
        final Calendar instance;
        (instance = Calendar.getInstance()).setTimeInMillis(timeInMillis);
        final int value = instance.get(1);
        final int value2 = instance.get(2);
        final int value3 = instance.get(5);
        final String substring = Integer.toString(value).substring(2, 4);
        String s;
        if ((s = Integer.toString(value2 + 1)).length() == 1) {
            s = "0".concat(String.valueOf(s));
        }
        String s2;
        if ((s2 = Integer.toString(value3)).length() == 1) {
            s2 = "0".concat(String.valueOf(s2));
        }
        return String.valueOf(substring) + s + s2;
    }
 
    public static CheckOutLicense a(String s) {
        try {
            return null;
        } catch (Exception ex) {
            return null;
        }
    }
 
    public final String ee() {
        return this.aa;
    }
 
    private String aa;
    private long a;
    private int c;
    private int[] b;
 
    public final void a(final long a) {
        this.a = a;
    }
 
    public final void a(final int c) {
        this.c = c;
    }
 
    public final void a(final int[] b) {
        this.b = b;
    }
 
    public final long a() {
        return this.a;
    }
 
    public final int[] b() {
        return this.b;
    }
 
    public final int c() {
        return this.c;
    }
 
    private void cc(String aa) {
        this.aa = aa;
    }
 
    @SuppressWarnings("AlibabaClassNamingShouldBeCamel")
    public class bb {
        private SecretKey a;
 
        public bb() {
            try {
                this.a = (SecretKey) new ObjectInputStream(new ByteArrayInputStream(Hex.decodeHex("aced0005737200146a6176612e73656375726974792e4b6579526570bdf94fb3889aa5430200044c0009616c676f726974686d7400124c6a6176612f6c616e672f537472696e673b5b0007656e636f6465647400025b424c0006666f726d617471007e00014c00047479706574001b4c6a6176612f73656375726974792f4b657952657024547970653b7870740003444553757200025b42acf317f8060854e00200007870000000084f5b0e52b33dbf797400035241577e7200196a6176612e73656375726974792e4b6579526570245479706500000000000000001200007872000e6a6176612e6c616e672e456e756d00000000000000001200007870740006534543524554".toCharArray()))).readObject();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
 
        public String a(final String s) {
            try {
                final Cipher instance;
                (instance = Cipher.getInstance("DES/ECB/PKCS5Padding")).init(1, this.a);
                return Hex.encodeHexString(instance.doFinal(s.getBytes()));
            } catch (Exception ex) {
                return null;
            }
        }
 
        public String b(final String s) {
            try {
                final Cipher instance;
                (instance = Cipher.getInstance("DES/ECB/PKCS5Padding")).init(2, this.a);
                return new String(instance.doFinal(Hex.decodeHex(s.toCharArray())));
            } catch (Exception ex) {
                return null;
            }
        }
    }
 
    @SuppressWarnings("AlibabaClassNamingShouldBeCamel")
    public final class cc {
        private int a;
        private char[] b;
        private int c = 63;
 
        public cc() {
            this.a = 0;
            Arrays.fill(this.b = new char[c], '0');
            this.a = new Random().nextInt(16);
            String obj;
            if ((obj = Integer.toBinaryString(this.a)).length() == 1) {
                obj = "000".concat(String.valueOf(obj));
            } else if (obj.length() == 2) {
                obj = "00".concat(String.valueOf(obj));
            } else if (obj.length() == 3) {
                obj = "0".concat(String.valueOf(obj));
            }
            for (int i = 0; i < 4; ++i) {
                this.b[i] = obj.charAt(i);
            }
        }
 
        public cc(String binaryString) {
            this.a = 0;
            Arrays.fill(this.b = new char[c], '0');
            final int length;
            if ((length = (binaryString = Long.toBinaryString(Long.parseUnsignedLong(binaryString, 16))).length()) <= c) {
                for (int i = 0; i < length; ++i) {
                    this.b[c - length + i] = binaryString.charAt(i);
                }
            }
            final char[] value = new char[4];
            System.arraycopy(this.b, 0, value, 0, 4);
            binaryString = new String(value);
            this.a = Integer.parseUnsignedInt(binaryString, 2);
        }
 
        @Override
        public final String toString() {
            String string = "";
            for (int i = 0; i < c; ++i) {
                string = String.valueOf(string) + this.b[i];
            }
            return string;
        }
 
        public final char[] a() {
            final String hexString = Long.toHexString(Long.parseUnsignedLong(this.toString(), 2));
            final int n;
            final char[] array;
            Arrays.fill(array = new char[n = (c + 1) / 4], '0');
            for (int length = hexString.length(), i = 0; i < length; ++i) {
                array[n - length + i] = hexString.charAt(i);
            }
            return array;
        }
 
        public final boolean a(int c) {
            return (c = this.c(c)) < c && this.b[c] == '1' && c >= 4;
        }
 
        private int c(int n) {
            if (n >= 0 && n < 59) {
                if ((n += 4 + this.a) >= 63) {
                    n -= 59;
                }
                return n;
            }
            return -1;
        }
 
        public final void b(int c) {
            if ((c = this.c(c)) < c && c >= 4) {
                this.b[c] = '1';
            }
        }
    }
}