0

我是编程新手(刚开始!),最近碰壁了。我正在为魔兽世界制作一个粉丝网站,我想链接到一个受欢迎的网站 (wowhead.com)。以下页面显示了我想要弄清楚的内容:http ://www.wowhead.com/?talent#ozxZ0xfcRMhuVurhstVhc0c

据我了解,链接的“ozxZ0xfcRMhuVurhstVhc0c”部分是一个哈希。它包含页面上有关该特定天赋规范的所有信息,并且每当我在天赋中添加或删除点时都会更改。我希望能够重新创建这部分,以便我可以将我的用户直接链接到 wowhead 以查看他们的天赋树,但我不知道如何做到这一点。任何人都可以提供一些指导吗?

4

6 回答 6

8

第一个字符表示类:

0 Druid
c Hunter
o Mage
s Paladin
b Priest
f Rogue
h Shaman
I Warlock
L Warrior
j Death Knight

其余字符表示每个树点的分配位置。每棵树都是独立的,由“Z”分隔。因此,如果所有点都在第三棵树中,那么第二和第三个字符将是“ZZ”,表示“第一棵树的结尾”和“第二棵树的结尾”。

要为给定的树生成代码,请将人才分成两对,从左到右和从上到下。每对人才由一个字符表示。所以例如在DK的血树段中,第一个字符表示分配给屠戮和颠覆的点数,第二个字符表示刀锋屏障和刀锋盔甲。

什么字符代表这对中的每个分配?我确信有一个算法,可能基于 ASCII 字符集,但到目前为止我所做的只是这个查找表。求顶部的第一个天赋点数,左侧的第二个天赋点数。编码字符位于交叉点。

  0 1 2 3 4 5
0 0 o b h L x
1 z k d u p t
2 M R r G T g
3 c s f I j e
4 m a w N n v
5 V q i A y E

因此,如果我们的死亡骑士在屠戮中有 1 分,在颠覆中有 2 分,则第一个字符是“R”。相反,如果我们在 Blade Barrier 中的这两个和五个中不加分,那么前两个字符将是“0x”。尾随“0”(树中没有分配点的所有其他对)可以省略,尾随“Z”定界符也可以省略(当后续树中没有点时)。最后一个例子,一个只有一个韧性点的 DK 的完整代码是“jZ0o”:“死亡骑士”、“第一棵树的尽头”、“第一对天赋中没有点”、“一个点在第二对的第一个天赋”。

谁能弄清楚上面的查找表是由什么函数生成的?类的代码中可能有一个线索:按字母顺序(除了在其他之后添加到游戏中的DK),它们对应于查找表中的一个系列(0,0),(0,3 )、(1,0)、(1,3)、(2,0) 等。

于 2009-06-12T09:17:31.253 回答
6

如果您访问http://www.wowhead.com/?talent并开始使用天赋树,您可以在单击各个框时在地址栏中看到正在构建的神秘代码。所以它绝对不是散列,而是某种编码的结构数据。

当您单击构建代码时,构建代码的逻辑将在该页面上的 JavaScript 中。

所以我的建议是在页面上查看源代码,下载 JavaScript 文件并查看它们。

于 2009-06-12T07:20:49.100 回答
5

我认为它不是哈希值,因为哈希值通常是单向值。这意味着您无法(轻松)恢复生成哈希码的原始信息。

最好的办法是联系 wowhead.com 上的某个人并询问他们如何解释这些信息。我相信他们会为您提供一些关于他们用于参数的编码类型的信息。但是,如果没有 wowhead.com 开发人员的任何帮助,几乎不可能弄清楚该参数中编码了哪些信息。

我什至不确定您提到的参数是否包含您角色的才能。也许它只是一个会话 ID 或类似的东西。查看您的浏览器发送到服务器的发布数据,它可能包含一个隐藏字段,其中包含您正在搜索的值(您可以使用Tamper Data Firefox Addon)。

于 2009-06-12T07:07:48.180 回答
1

我不认为 ozxZ0xfcRMhuVurhstVhc0c 是哈希值。我认为这是一个密钥(可能以某种方式加密/编码)。服务器使用此密钥从其数据库中检索信息。由于您无权访问数据库,因此您不知道需要哪个密钥,更不用说如何对其进行编码了。

于 2009-06-12T07:10:19.577 回答
0

您需要生成哈希的原始函数。我不认为这是公开的:(

看看这个:哈希维基百科

祝你学习编程好运!

于 2009-06-12T07:06:52.987 回答
0

除非您知道它是如何生成的,否则这些哈希很难“逆向工程”。

例如,它可能是:

   s1 = "random_string-" + score;
   hash = encrypt(s1) 
   ...etc

所以很难从哈希中取回原始数据(这就是重点)。

您最好的选择是链接到具有最新分数的个人资料..etc

于 2009-06-12T07:13:08.417 回答