-
-
[求助]这段java代码怎么写注册代码
-
发表于: 2016-12-6 20:52 2503
-
String keyStr ="TLdj6Zcmsr";
public static boolean test(String paramString)
{
Object localObject = paramString.replace("-", "");
if (((String)localObject).length() % 2 == 1) {
return false;
}
paramString = new char[((String)localObject).length() / 2];
int m = 0;
int k = 0;
int j = 0;
if (k >= ((String)localObject).length())
{
if ((m != 9) || (paramString[8] != 'O')) {
return false;
}
}
else
{
int n = j;
if (j == keyStr.length()) {
n = 0;
}
j = ((String)localObject).charAt(k);
int i2 = ((String)localObject).charAt(k + 1);
int i1 = j;
if (j >= 97)
{
i1 = j;
if (j <= 122) {
i1 = j - 32;
}
}
j = i2;
if (i2 >= 97)
{
j = i2;
if (i2 <= 122) {
j = i2 - 32;
}
}
if (i1 >= 65)
{
i1 -= 55;
label200:
if (j < 65) {
break label308;
}
j -= 55;
}
for (;;)
{
j = (char)(i1 * 16 + j);
int i = (char)(keyStr.charAt(n) ^ j);
paramString[m] = i;
m += 1;
k += 2;
j = n + 1;
break;
i1 -= 48;
break label200;
label308:
j -= 48;
}
}
localObject = new byte[6];
j = 0;
for (;;)
{
if (j >= 6)
{
if (!byte2HexString((byte[])localObject, false).equalsIgnoreCase(mima)) {
break;
}
return true;
}
localObject[j] = ((byte)paramString[(j + 2)]);
j += 1;
}
return false;
}
public static String byte2Hex(byte[] paramArrayOfByte, boolean paramBoolean)
{
if (paramArrayOfByte == null) {
return "null";
}
StringBuilder localStringBuilder = new StringBuilder();
int i = 0;
for (;;)
{
if (i >= paramArrayOfByte.length) {
return localStringBuilder.toString();
}
localStringBuilder.append(hex[((paramArrayOfByte[i] & 0xF0) >>> 4)]).append(hex[(paramArrayOfByte[i] & 0xF)]);
if ((paramBoolean) && (i != paramArrayOfByte.length - 1) && (i % 3 == 2)) {
localStringBuilder.append('-');
}
i += 1;
}
}
其中test段是测试比较注册码与实际密码正确与否的代码段,其中实际mima可知,怎么算出注册码?求助各位大神。
public static boolean test(String paramString)
{
Object localObject = paramString.replace("-", "");
if (((String)localObject).length() % 2 == 1) {
return false;
}
paramString = new char[((String)localObject).length() / 2];
int m = 0;
int k = 0;
int j = 0;
if (k >= ((String)localObject).length())
{
if ((m != 9) || (paramString[8] != 'O')) {
return false;
}
}
else
{
int n = j;
if (j == keyStr.length()) {
n = 0;
}
j = ((String)localObject).charAt(k);
int i2 = ((String)localObject).charAt(k + 1);
int i1 = j;
if (j >= 97)
{
i1 = j;
if (j <= 122) {
i1 = j - 32;
}
}
j = i2;
if (i2 >= 97)
{
j = i2;
if (i2 <= 122) {
j = i2 - 32;
}
}
if (i1 >= 65)
{
i1 -= 55;
label200:
if (j < 65) {
break label308;
}
j -= 55;
}
for (;;)
{
j = (char)(i1 * 16 + j);
int i = (char)(keyStr.charAt(n) ^ j);
paramString[m] = i;
m += 1;
k += 2;
j = n + 1;
break;
i1 -= 48;
break label200;
label308:
j -= 48;
}
}
localObject = new byte[6];
j = 0;
for (;;)
{
if (j >= 6)
{
if (!byte2HexString((byte[])localObject, false).equalsIgnoreCase(mima)) {
break;
}
return true;
}
localObject[j] = ((byte)paramString[(j + 2)]);
j += 1;
}
return false;
}
public static String byte2Hex(byte[] paramArrayOfByte, boolean paramBoolean)
{
if (paramArrayOfByte == null) {
return "null";
}
StringBuilder localStringBuilder = new StringBuilder();
int i = 0;
for (;;)
{
if (i >= paramArrayOfByte.length) {
return localStringBuilder.toString();
}
localStringBuilder.append(hex[((paramArrayOfByte[i] & 0xF0) >>> 4)]).append(hex[(paramArrayOfByte[i] & 0xF)]);
if ((paramBoolean) && (i != paramArrayOfByte.length - 1) && (i % 3 == 2)) {
localStringBuilder.append('-');
}
i += 1;
}
}
其中test段是测试比较注册码与实际密码正确与否的代码段,其中实际mima可知,怎么算出注册码?求助各位大神。
赞赏
赞赏
雪币:
留言: