2009-06-12 5 views
0

나는 프로그래밍에 초보자이며 최근에 벽에 부딪쳤다. World of Warcraft에 대한 팬 사이트를 만들고 있는데, 인기있는 사이트 (wowhead.com)에 연결하고 싶습니다. 다음 페이지는 내가 알아 내려는 것을 보여줍니다 : http://www.wowhead.com/?talent#ozxZ0xfcRMhuVurhstVhc0c어떻게이 해시를 생성 할 수 있습니까?

내가 이해 한 바로는, "ozxZ0xfcRMhuVurhstVhc0c"부분이 해시입니다. 여기에는 페이지의 특정 재능 스펙에 대한 모든 정보가 포함되어 있으며 재능에 포인트를 추가하거나 제거 할 때마다 변경됩니다. 이 부분을 다시 만들 수 있기를 바란다. 그래서 사용자를 직접적으로 재능있는 나무를 볼 수있는 링크로 연결할 수는 있지만, 어떻게해야 할 지 모르는 생각이다. 누구든지 약간의 지침을 제공 할 수 있습니까?

+0

해시는 아니지만 단순히 재능 정보 데이터를 압축합니다 (클래스 다음에는 재능 순위 목록이옵니다). 알렉산더가 조언하고 wowhead.com 사람들과 확인하십시오. – Blixt

답변

5

해시 값이 일반적이기 때문에 나는 그것을 해시 값 아니라고 생각! 단방향 값. 즉, 해시 코드가 생성 된 원본 정보를 쉽게 복원 할 수 없음을 의미합니다.

wowhead.com의 누군가에게 연락하여이 정보를 해석하는 것이 가장 좋습니다. 그들이 어떤 종류의 enco에 관한 정보를 가지고 당신을 도울 것입니다. 그들은 매개 변수에 사용합니다. 그러나 wowhead.com의 개발자가 도움을받지 않으면 어떤 정보가이 매개 변수로 인코딩되는지 파악하는 것은 거의 불가능합니다.

언급 한 매개 변수에 캐릭터의 재능이 포함되어 있는지 확실하지 않습니다. 어쩌면 단지 세션 ID 일 수도 있습니다. 브라우저가 서버에 보내는 게시물 데이터를 살펴보십시오. 검색중인 값이있는 숨겨진 필드가있을 수 있습니다 (Tamper Data Firefox Addon 사용 가능).

+0

조언을 주셔서 감사합니다, 나는 그들을 잡아, 잘하면 시간을 절약 할 수 있습니다. –

0

해시를 생성하는 원래 함수가 필요합니다. 나는 그 생각 :(

확인이를 공공 생각하지 않습니다 : hash wikipedia

행운을 프로그래밍하는 방법을 학습

1

ozxZ0xfcRMhuVurhstVhc0c가 해시 값이라고 생각하지 않습니다. 나는 이것이 키 (아마 어떤 방식 으로든 암호화/인코딩 된 것)라고 생각한다. 서버는이 키를 사용하여 데이터베이스에서 정보를 검색합니다. 데이터베이스에 액세스 할 수 없기 때문에 필요한 키가 무엇인지 알지 못합니다. 인코딩하는 방법은 물론입니다.

+0

나는 이것이 사실 일지 의심 스럽다. 공간을 절약하기 위해 긴 인재 등급의 압축 된 버전 (200111050013 ...) 일 가능성이 큽니다. – Blixt

0

이 해시는 생성 방법을 알지 못하는 한 '리버스 엔지니어링'하기가 어렵습니다.

예를 들어, 수 :

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

는 그래서 다시 해시 (즉, 어쨌든 전체 지점입니다)에서 원본 데이터를 얻기 어렵다.

가장 좋은 건 당신이 http://www.wowhead.com/?talent로 이동하여 신비의 코드는 주소 표시 줄에 구축되는 것을 볼 수있는 재능 트리를 사용하기 시작하면

6

.. 등 최신 점수를했을 프로필 링크가 될 것입니다 여러 상자를 클릭하면됩니다. 따라서 해시는 아니지만 인코딩 된 구조 데이터의 일종입니다.

코드를 빌드 할 때 코드를 빌드 할 때 코드 작성을 위해 해당 페이지의 JavaScript가 사용됩니다.

내 충고는 페이지의보기 소스를 작성하고 JavaScript 파일을 다운로드하여 살펴 봅니다.

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

나머지 문자가 표시 트리의 각 지점에 할당 된 :

+0

그렇게 생각하지 않았습니다. 자바 스크립트에 익숙하다면 사용해 볼 가치도 있습니다. – Alexander

+1

내가 응답하기를 기다리는 동안, 나는 그것을 알아 내려고 노력할 것이다. 자바 스크립트는 무섭다 - 모든 변수 이름은 't, aX, m, C, w, aA, ag, aZ'등과 같은 것들이다. 잘만되면 나는 어디인가에 도착할 것이다. 감사! –

8

첫 번째 문자는 클래스를 나타냅니다. 각 트리는 'Z'로 구분 된 별도의 트리입니다. 따라서 예를 들어 모든 포인트가 세 번째 트리에 있으면 두 번째 및 세 번째 문자가 "첫 번째 트리 끝"과 "두 번째 트리 끝"을 나타내는 "ZZ"가됩니다.

주어진 트리에 대한 코드를 생성하려면, 재능을 왼쪽에서 오른쪽으로 그리고 위에서 아래로 쌍으로 위로 나눕니다. 재능의 각 쌍은 하나의 문자로 표현됩니다. 예를 들어, DK의 Blood 트리 세그먼트에서 첫 번째 문자는 부리와 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 

그래서, 첫 번째 문자는 'R'입니다. 대신 Blade Barrier에서 2와 5의 점수를 입력하지 않으면 첫 두 글자는 "0x"가됩니다. 후행하는 'Z'구분 기호 (후속 트리에 점이 없을 때)와 마찬가지로 후행 '0'(할당 된 점이없는 트리의 다른 모든 쌍)은 생략 할 수 있습니다. 마지막 예를 들어서, 강인함의 단지 한 점을 가진 DK의 전체 코드는 "데스 나이트", "첫 번째 나무의 끝", "첫 번째 인재의 점수가 없습니다", " 두 번째 쌍의 첫 재능을 가리킨다 "고 말했다.

누구나 위의 조회 테이블을 생성하는 함수를 만들 수 있습니까? 클래스에 대한 코드에는 아마도 단서가 있습니다. 알파벳순으로 (다른 게임 다음에 게임에 추가 된 DK 제외), 이들은 (0,0), (0,3), (1,0), (1,3), (2,0) 등