2013-05-01 3 views
1

나는 이미지의 SHA1 해시를 얻는 경우를 아래와 같이 가지고있다. 이제 Image으로 어떻게 변환 할 수 있습니까?vcard 사진에서 이미지를 검색하려면 어떻게해야합니까? SHA-1 XMPP로 해시 하시겠습니까?

귀하의 정보는 아래의 사용자 정보 및 SHA1 해시 형식의 사진을 얻는 XMPP 코드입니다.

<presence from='[email protected]/balcony'> 
    <x xmlns='vcard-temp:x:update'> 
     <photo>sha1-hash-of-image</photo> 
    </x> 
</presence> 

초보자 인 C#입니다. 도움을 주셔서 감사합니다.

+0

당신이해야하는 데 도움이 마지막 :

희망 변경된 경우 만보고 비교하는 것입니다 자신에게 물어보십시오 "해시 무엇입니까?" 그리고 그 질문에 답하기 위해 조사를하십시오. RSA Labs : [해시 함수 란 무엇입니까?] (http://www.rsa.com/rsalabs/node.asp?id=2176) 위키 백과 : [해시 함수] (http://en.wikipedia.org/wiki/Hash_function) –

+0

Jonathon에게 조언 해 주시면 감사하겠습니다.이 링크를 확인해 드리겠습니다. –

+0

긴 이야기 만 짧으면 원래 메시지 **를 해시에서 복구 할 수 없습니다. 해쉬는 입력이 아무리 크다고하더라도 고정 길이입니다. 생각해 보면, 단지 20 자 문자열로 4GB 전체 영화를 복구 할 수있을 것으로 기대하십니까? –

답변

8

수 없습니다. A SHA-1 hash은 실제로 이미지의 지문입니다. 이미지 자체는 포함되어 있지 않습니다. 그리고 전에 이미 인출 (그리고 캐시)이 이미지를 가지고 고객들이 캐시 확인 할 수 있도록 vCard를 업데이트 그냥 해시를 포함 -는 생각처럼 보이는 this extension document을 감안할 때

은 vCard를이 실제 데이터를 포함하고 있다는 것입니다 버전은 여전히 ​​유효하며 그렇지 않은 경우 전체 데이터를 가져옵니다. section 3.2에서

:

수신자의 클라이언트가 아바타 이미지의 해시를 수신

, 그것은 이미 아바타 이미지의 캐시 된 복사본이 있는지 확인하기 위해 해시를 확인해야합니다. 그렇지 않은 경우는 XEP-0054에 기술 된 프로토콜 흐름에 따라 보낸 사람의 전체의 vCard를 검색합니다 (이 요청은 사용자의 베어 JID가 아닌 전체 JID에 전송되어 있습니다)

+0

답장을 보내 주셔서 감사하지만 문서는 이미지라고하지만 문자열로 변환하는 다른 방법은 .. 이미지 URL 일 수도 있습니다 .. –

+0

@ SwetaTiwari : 아니, 정말로 그렇지 않습니다. 내 편집 게시물의 링크를 참조하십시오. –

0

당신이 사용자의를 얻고 싶다면 VCard, 당신은 자신의 jid (또는 확장 jid를 사용하여 그 사용자에 대한 VCard를로드해야합니다 ... C# xmpp 라이브러리가 VCard를로드하는 데 필요한 것을 알지 못합니다).

일단 VCard가로드되면 XML 내에서 사진의 원시 값을 가져올 수 있어야합니다. photo 값은 base64로 인코딩 된 문자열이 될 것이므로 문자열을 이진 바이트 문자열 또는 바이트 배열로 base64로 디코딩해야하며 C# XMPP 라이브러리가 제공하는 아바타 데이터를 다시 추출해야합니다.

이렇게하면 이미지로 변환 할 수 있습니다. BTW

VCard vcard = new VCard(xmppConnection); 
try { 
    vcard.load("[email protected]"); 
} catch (XMPPException e) {} 
byte[] avatar = vcard.getAvatar(); 

: 자바,이이 같은 수행되는 SHA1 해시는 이미지가 ~

관련 문제