2013-04-19 6 views
0

Google 안전 브라우징 API 버전 2의 구현을 테스트하려고합니다. 주어진 접두사에 대한 전체 해시 요청을 전송하는 코드 일부를 테스트하려면 짧은 코드 내가 현재 알려진 블랙리스트의 URL "utfvq.portrelay.com"을 방문한 트래픽의 세션과 파이어 폭스는 전체 해시와 google에 대한 요청을 해시 목록과 함께 보냈습니다. Google 안전 브라우징 V2 구현의 해시 계산

파이어 폭스하여 전송이 (16 진수 인코딩)하는 접두사

:이받은 전체 해시 일치 2e2e372e,2e26382e,2e2e382e,6545382e

4는 다음과 같습니다 내 구현에서

2e26382e2e2e436d2e2e2e2e322e3b2e2e2e2e2e4a2e2e2e7b2e2e2e6a492e2e 
6545382e2e2a5b792e652e2e2e2e2e2e2e2e70442e7d2e2e2e222e2e502e2e2e 
2e2e382e6c36252e2e522e2e592e2e2e2e2e3f592e2e2e782e2e572e4e2e2e2e 
2e2e372e2e2e2e2e55682e542e51622e552e2e68352e2e2e2e2e2e2e2ed2755 

그러나, 내가 생성하는 해시 접두사가 일치하지 않는 것 파이어 폭스가 보낸 해시 접두사. 따라서 클라이언트에서 전체 해시 일치를 얻지 못하고 있습니다.

Google의 Google 설명을 자세히 읽은 후 URL 정규화와 같은 이전 단계가 올바르게 구현되었는지 확인했습니다. 내가 할

URL입니다, SHA256 해시는

utfvq.portrelay.com/ : 5c2383012676e63656c13167e1cc4f55309c4e1b73c22556e36ec1487e8b8697

portrelay.com/ : 해시가 일치하지 않는 이유

842638fe92ee436da7808d0232d03bcaa0f5c8b64ad5eee97bf28dbb6a49f8ae은 어떤 하나 지적 할 수 있습니다. 나는 API 지식을 최대한으로 따라 갔다. 실종 된 구현 세부 사항이 있습니까?

답변

0

그것은 내 부분에서 기본 문자 인코딩 오류로 밝혀졌습니다.

내 코드에서 계산 한 SHA 해시가 정확합니다. 파이어 폭스가 보낸 해시를 보는 방식은 잘못되었습니다. 일반 ASCII 범위가 아닌 바이트를 점 (.)으로 저장 한 텍스트 파일의 문자를 복사했습니다. 그런 다음 이것을 "손실"인코딩의 일종 인 16 진수 값으로 변환했습니다. 이것이 해시에 너무 많은 "2e"16 진수 문자가있는 이유입니다. 이제 원래의 바이트 만 사용하고 있습니다.

+0

안녕하세요, URL 문자열의 해시 접두사를 자세히 생성하는 방법을 알려주시겠습니까? –