まず第一に、これは他の人から与えられた宿題やその他の課題ではありません。これは、より安全にしたいゲームアプレットの機能です。この関数を使用すると、ゲームのハンドシェイク部分のパスワードを生成できます。しかし、すべてのプレイヤーに同じエンコードされたパスワードを使用するのは、愚かなことです。攻撃に対して非常にオープンになり、これが私がいる状況です。これが、この関数が何をするかを分析し、すべての一意の接続に対してパスワードを生成する方法を考え出す理由です。だから、私を理解しようとしてください。
関数は次のとおりです。
public String g(String paramString)
{
boolean bool = d.r;
try
{
if (!bool)
{
if (paramString.length() < 3)
{
a(tc[2]);
return "";
}
if (bool);
}
else
{
if (paramString.length() > 200)
{
a(tc[3]);
return "";
}
paramString = paramString.toLowerCase();
}
String str1 = "";
String str2 = paramString;
paramString = paramString.toLowerCase();
char[] arrayOfChar1 = { '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', ' ' };
char[] arrayOfChar2 = { 'x', 'f', 'n', 'g', 'd', '9', 's', 'j', 'o', 'q', '5', 'a', 'z', 'w', '6', '0', 'e', '4', 'c', 'r', '1', 'v', 't', '3', 'b', 'y', 'h', '2', 'u', '7', 'm', 'i', 'k', '8', 'l', 'p', '?' };
char[] arrayOfChar3 = { 'f', 'e', '8', 'r', 'k', 't', '7', 'b', 'c', 'm', 'o', 'q', '2', '3', 'g', 's', 'n', 'x', '0', 'p' };
char[] arrayOfChar4 = paramString.toCharArray();
char[] arrayOfChar5 = str2.toCharArray();
int i1 = 0;
if (bool);
do
{
int i2 = 0;
int i3 = 0;
if (bool);
do
do
{
if (!bool)
{
if (arrayOfChar4[i1] == arrayOfChar1[i3])
i2 = 1;
}
else
{
int i4 = paramString.length();
int i5 = (int)Math.round(Math.random() * 19.0D);
int i6 = i3 + i5 + i4;
if (bool);
String str3;
do
{
do
i6 -= arrayOfChar2.length;
while (i6 >= arrayOfChar2.length);
str1 = str1 + "" + arrayOfChar3[i5];
str3 = String.valueOf(arrayOfChar2[i6]);
}
while (bool);
if (arrayOfChar4[i1] != arrayOfChar5[i1])
str3 = str3.toUpperCase();
str1 = str1 + "" + str3;
}
i3++;
}
while (i3 < arrayOfChar1.length);
while (bool);
if (i2 == 0)
str1 = str1 + "\\" + arrayOfChar4[i1];
i1++;
}
while (i1 < arrayOfChar4.length);
return str1;
}
catch (Exception localException)
{
}
return "";
}
そして、これはそれによって生成されたいくつかの例です:
aaa -> cafg89
aaa -> ca3eca
aaa -> q6fged
aaa -> fgg4ow
aaaa -> tqp3srmw
aaaa -> 75e9rjcz
bbb -> o6q00t
bbb -> 0tczcz
bbbb -> 03o0bzo0
bbbb -> rogrt5kq
しかし、最も疑わしい例は次のとおりです。
1111111 -> 00000000000000
222222 -> 000000000000
33333 -> 0000000000
5555555 -> m5m5m5m5m5m5m5
666666 -> m5m5m5m5m5m5
77777 -> m5m5m5m5m5
8888 -> m5m5m5m5
999 -> m5m5m5
私は今、少し必死になっているので、運を押し上げています。いつもお言葉ありがとうございます。