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;
|
}
|