田源
2024-03-07 4b4083fd73dc27ece42f4835483565eef0e4f608
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
package com.vci.common.utility;
 
/**
 * <p>Title: </p>
 * <p>Description: generantor guid which length is 20.</p>
 */
public final class RandomGUID20 {
 
    public RandomGUID20()
    {
        puidVectorInt = new int[9];
    }
 
    public String getNewObjectID(String strToken)
    {
        String puid = "";
        String lastID = "";
        String nameID = "";
        byte nameb[] = strToken.getBytes();
        int namelength = nameb.length;
        int namei[] = new int[nameb.length];
        for(int i = 0; i < nameb.length; i++)
            namei[i] = Math.abs(nameb[i]);
 
        String first = puidVector[namei[0] - 52 * (namei[0] / 52)];
        if(namelength == 1)
        {
            nameID = first + first + first + first;
        } else
        {
            String second = puidVector[namei[namelength / 2] - 52 * (namei[namelength / 2] / 52)];
            String end = puidVector[namei[namelength - 2] - 52 * (namei[namelength - 2] / 52)] + puidVector[namei[namelength - 1] - 52 * (namei[namelength - 1] / 52)];
            nameID = first + second + end;
        }
        int randomnumber = (int)(Math.random() * 14000000D);
        int lastnumber = randomnumber - (randomnumber / 62) * 62;
        lastID = lastID + puidVector[lastnumber];
        randomnumber /= 62;
        lastnumber = randomnumber - (randomnumber / 62) * 62;
        lastID = lastID + puidVector[lastnumber];
        randomnumber /= 62;
        lastnumber = randomnumber - (randomnumber / 62) * 62;
        lastID = lastID + puidVector[lastnumber];
        lastnumber = randomnumber / 62;
        lastID = lastID + puidVector[lastnumber];
        long currentDate = System.currentTimeMillis();
        result = currentDate;
        for(int i = 0; result > 0L; i++)
        {
            remainder = result - (result / 62L) * 62L;
            puidVectorInt[i] = (int)remainder;
            result /= 62L;
        }
 
        for(int j = 0; j < 7; j++)
        {
            int n = puidVectorInt[j];
            puid = puid + puidVector[n];
        }
 
        puid = nameID + puid + lastID;
        return puid;
    }
 
    public String CountPassWord(String PassWord)
    {
        String newPassWord = "";
        if(PassWord.equals(""))
        {
            newPassWord = "aaaaaaaaaaaaaaa";
            return newPassWord;
        }
        int n = PassWord.length();
        int firstnumber[] = {
            23, 47, 34, 26, 25, 67, 98, 87, 76, 58, 
            75, 65, 35, 25, 45
        };
        char changepass[] = new char[15];
        int changepassnum[] = new int[15];
        char pass[] = new char[n];
        int passnumber[] = new int[n];
        pass = PassWord.toCharArray();
        for(int i = 0; i < n; i++)
            passnumber[i] = (pass[i] + n) - i;
 
        for(int j = 0; j < 15; j++)
            changepassnum[j] = passnumber[j - (j / n) * n];
 
        int passwordnumber[] = new int[15];
        for(int i = 0; i < 15; i++)
        {
            int middlenumber = changepassnum[i];
            middlenumber = (int)Math.pow(middlenumber - 15, 3D);
            middlenumber *= firstnumber[i];
            passwordnumber[i] = (middlenumber - (middlenumber / 94) * 94) + 33;
            if(passwordnumber[i] == 39)
                passwordnumber[i] = 40;
            changepass[i] = (char)passwordnumber[i];
            newPassWord = newPassWord + changepass[i];
        }
 
        return newPassWord;
    }
 
    private boolean isAscii(String utf)
    {
        byte temp[] = utf.getBytes();
        return temp.length == utf.length();
    }
 
    public String getAscii(String utf)
    {
        if(isAscii(utf))
            return utf;
        String asc = "";
        try
        {
            byte nameb[] = utf.getBytes();
            for(int i = 0; i <= nameb.length - 1; i++)
            {
                int temp = Math.abs(nameb[i]);
                asc = asc + puidVector[temp - 52 * (temp / 52)];
            }
 
            return asc;
        }
        catch(Exception exception)
        {
            return asc;
        }
    }
 
    private String puidVector[] = {
        "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", 
        "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", 
        "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", 
        "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", 
        "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", 
        "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", 
        "8", "9"
    };
    private int puidVectorInt[];
    private long remainder;
    private long result;
}