0 hash reverse-engineering hyperlink
我刚接触编程(刚开始!)并且最近遇到了问题.我正在为魔兽世界制作粉丝,我想链接到一个热门网站(wowhead.com).以下页面显示了我想弄清楚的内容:http://www.wowhead.com/?talent#ozxZ0xfcRMhuVurhstVhc0c
根据我的理解,链接的"ozxZ0xfcRMhuVurhstVhc0c"部分是一个哈希.它包含有关页面上特定人才规范的所有信息,以及每当我向人才添加或删除积分时的更改.我希望能够重新创建这个部分,以便我可以直接将我的用户链接到wowhead以查看他们的天赋树,但我不知道如何做到这一点最模糊的想法.谁能提供一些指导?
第一个字符表示班级:
0 Druid
c Hunter
o Mage
s Paladin
b Priest
f Rogue
h Shaman
I Warlock
L Warrior
j Death Knight
Run Code Online (Sandbox Code Playgroud)
其余字符表示每个树点的分配位置.每棵树都是独立的,由'Z'分隔.因此,如果例如所有点都在第三树中,则第二和第三字符将是"ZZ",表示"第一棵树的结束"和"第二棵树的结束".
要生成给定树的代码,请将人才分成两对,从左到右,从上到下.每一对天赋都由一个角色代表.例如,在DK的Blood树段中,第一个字符将指示分配给Butchery和Subversion的点数,第二个字符将代表Blade Barrier和Bladed Armor.
在这对中,每个分配代表什么字符?我确定有一个算法,可能基于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
Run Code Online (Sandbox Code Playgroud)
因此,如果我们的死亡骑士在屠杀中有一个点,在Subversion中有两个点,那么第一个角色是'R'.相反,如果我们在Blade Barrier中的那两个和五个中没有任何点,则前两个字符将为"0x".尾随'0'(树中没有分配点的所有其他对)可以省略,因为尾随'Z'分隔符(当后续树中没有点时).最后一个例子,DK在Toughness中只有一个点的整个代码将是"jZ0o":"死亡骑士","第一棵树的结尾","第一对天才中没有点","一个指出第二对的第一个人才".
任何人都可以找出上面的查找表生成什么函数?这些类的代码可能有一个线索:按字母顺序排列(除了在其他人之后添加到游戏中的DK),它们对应于(0,0),(0,3)的查找表中的一系列),(1,0),(1,3),(2,0)等
如果您访问http://www.wowhead.com/?talent并开始使用天赋树,您可以在单击各个框时看到地址栏中正在构建的神秘代码.所以它绝对不是哈希,而是某种编码结构数据.
随着代码的构建,您单击构建代码的逻辑将在该页面上的JavaScript中.
所以我的建议是在页面上做一个视图源,下载JavaScript文件并查看它们.
我认为它不是哈希值,因为哈希值通常是单向值.这意味着您无法(轻松)恢复生成哈希码的原始信息.
最好的办法是联系wowhead.com的某个人,并询问他们如何解释这些信息.我相信他们会帮助你提供一些关于他们用于参数的编码类型的信息.但是,如果没有来自wowhead.com的开发人员的任何帮助,几乎不可能找出编码到这个参数中的信息.
我甚至不确定你提到的参数是否包含你角色的天赋.也许它只是一个会话ID或类似的东西.查看您的浏览器发送到服务器的帖子数据,它可能包含一个隐藏字段,其中包含您要搜索的值(您可以使用Tamper Data Firefox Addon).