2009-06-12 5 views
0

Я новичок в программировании (только что начал!) И недавно ударил по стене. Я делаю фан-сайт для World of Warcraft, и я хочу связать его с популярным сайтом (wowhead.com). На следующей странице показано, что я пытаюсь выяснить: http://www.wowhead.com/?talent#ozxZ0xfcRMhuVurhstVhc0cКак я могу создать этот хэш?

Из того, что я понимаю, часть «ozxZ0xfRRMhuVurhstVhc0c» является хешей. Он содержит всю информацию об этой конкретной спецификации таланта на странице и изменяется, когда я добавляю или удаляю очки в талант. Я хочу, чтобы иметь возможность воссоздать эту часть, чтобы затем я мог связать своих пользователей напрямую с wowhead, чтобы просмотреть их деревья талантов, но я не знаю, как это сделать. Может ли кто-нибудь дать некоторые рекомендации?

+0

Скорее всего, это не хэш, а просто сжатые данные таланта (класс, за которым следует список рангов талантов.) Follow Александр советует и проверяет с людьми wowhead.com. – Blixt

ответ

5

Я думаю, что это не хэш-значение, поскольку хэш-значения обычно! односторонние значения.Это означает, что вы не можете (легко) восстановить исходную информацию, из которой был сгенерирован хэш-код.

Лучше всего связаться с кем-либо из wowhead.com и спросить их, как интерпретировать эту информацию. конечно, они помогут вам с некоторой информацией о том, какой тип энко они используют для параметров. Но без какой-либо помощи разработчиков от wowhead.com практически невозможно определить, какая информация кодируется в этот параметр.

Я даже не уверен, что указанный вами параметр содержит таланты вашего персонажа. Может быть, это всего лишь идентификатор сеанса или что-то в этом роде. Взгляните на почтовые данные, которые ваш браузер отправляет на сервер, он может содержать скрытое поле со значением, которое вы ищете (вы можете использовать Tamper Data Firefox Addon).

+0

Спасибо за совет, я их удержу, и, надеюсь, сэкономит время. –

0

Вам нужна оригинальная функция, которая генерирует хэш. Я не думаю, что публика, хотя :(

Проверьте это: hash wikipedia

Успехов научиться программировать

1

Я не думаю, что ozxZ0xfcRMhuVurhstVhc0c является хэш-значением. Я думаю, что это ключ (вероятно, зашифрованный/закодированный каким-то образом). Сервер использует этот ключ для извлечения информации из этой базы данных. Поскольку у вас нет доступа к базе данных, вы не знаете, какой ключ нужен, не говоря уже о том, как его кодировать.

+0

Я сомневаюсь, что это правда. Скорее всего, это просто сжатая версия длинной строки талантов (200111050013 ...), чтобы сэкономить место. – Blixt

0

Эти хэши трудно «перепроектировать», если вы не знаете, как это было создано.

Например, это может быть:

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

так трудно получить исходные данные обратно из хэша (то есть весь смысл в любом случае).

ваш лучший выбор будет ссылка на профиль, который будет иметь последний счет ..etc

6

Если вы идете в http://www.wowhead.com/?talent и начать использовать дерево талантов, вы можете увидеть таинственный код наращивается в адресной строке когда вы нажимаете на различные поля. Таким образом, это определенно не хэш, а какая-то кодированная структура данных.

Поскольку код создается, когда вы нажимаете логику построения кода, он будет находиться в JavaScript на этой странице.

Так что мой совет - просмотреть источник на странице, загрузить файлы JavaScript и посмотреть на них.

+0

Не думал об этом. Также стоит попробовать, если вы знакомы с JavaScript. – Alexander

+1

Пока я жду их ответа, я попытаюсь понять это. JavaScript страшен - все имена переменных такие, как «t, aX, m, C, w, aA, ag, aZ» и тому подобное. Надеюсь, я пойду куда-нибудь. Благодаря! –

8

Первый символ обозначает класс:

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

Остальные символы указывают, где в каждой из точек дерева были выделены. Каждое дерево является отдельным, разделенным «Z». Так, если, например, все точки находятся в третьем дереве, тогда 2-й и 3-й символы будут «ZZ», обозначающие «конец первого дерева» и «конец второго дерева».

Чтобы сгенерировать код для данного дерева, разделите таланты на пары, идя влево-вправо и сверху вниз. Каждая пара талантов представлена ​​одним символом. Так, например, в сегменте Кровавого дерева DK первый символ будет указывать количество точек, выделенных для 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 

Так что, если наш Рыцарь смерти имеет одну точку в мясопереработки и две точки в Subversion, то первый символ «R». Если вместо этого мы ставим точки в этих двух и пяти в Blade Barrier, первые два символа будут «0x». Трейлинг «0» (все остальные пары в дереве без выделенных точек) может быть опущен, как и трейлинг-разделители «Z» (если в последующих деревьях нет точек). Для одного заключительного примера весь код для DK с одной точкой в ​​Toughness будет «jZ0o»: «Рыцарь смерти», «Конец первого дерева», «Нет точек в первой паре талантов», «один указывают на первый талант второй пары ».

Может ли кто-нибудь определить, какая функция генерирует таблицу поиска выше? Вероятно, в кодах для классов есть ключ: в алфавитном порядке (кроме DK, который был добавлен в игру после других), они соответствуют серии в таблице поиска (0,0), (0,3), (1,0), (1,3), (2,0) и т. Д.

 Смежные вопросы

  • Нет связанных вопросов^_^