¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.lf.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'; |
| | | } |
| | | } |
| | | } |
| | | } |