मैं सहकर्मी सूची प्राप्त करने के लिए ट्रैकर को भेजने के लिए सही यूआरएल-एन्कोडेड जानकारी हैश के साथ आने का प्रयास कर रहा हूं।एक धार फ़ाइल को पार्स करना - हैश जानकारी। (Erlang)
परीक्षण के लिए, मैंने this url में धार को पार्स करने का प्रयास किया।
फ़ाइल खोलने के बाद, मैन्युअल रूप से जानकारी टुकड़ा और SHA1-हैश शब्दकोश में कटौती यह मूल्य है मैं इस द्विआधारी मूल्य प्राप्त:
< < 84,124,15,255,155,171,156,168,91,46,204,24,249,116,110, 139,202,167,163,54 >>
बाद वाली बाइनरी मान से प्राप्त ASCII स्ट्रिंग 788f590f28a799cc1009a9b780b649fd6f0a2e91 है, और यह साइट में उल्लिखित वही मान है।
तो मान लीजिए कि अब तक सबकुछ सही है (है ना?)।
बाइनरी मान एन्कोडिंग नीचे मैं यूआरएल एन्कोडिंग समारोह इस्तेमाल करने के बाद टी% 7c% 0f% एफएफ% 9b% अब% 9c% A8% 5 ब।% सीसी% 18% f9tn% 8b% सीए% ए 7% ए 36, जो सही urlencoded मान के करीब भी नहीं है जिसे मुझे ट्रैकर को भेजना चाहिए। (जब मैं इसे ट्रैकर को भेजता हूं तो मुझे कोई त्रुटि नहीं मिलती है, साथ ही, यह वैरहार्क का उपयोग करके देखे गए मान से मेल नहीं खाता है जो x% 8fY% 0f% 28% a7% 99% सीसी% 10% 09% ए 9 है % बी 7% 80% बी 6 आई% एफडीओ% 0 ए।% 91)।
यूआरएल एन्कोडिंग समारोह मैं उपयोग कर रहा हूँ:
encode(<<Bin:20/binary-unit:8>>)->
%io:format("~p~n", [binary_to_list(Bin)]),
encode(binary_to_list(Bin));
encode(List) -> do_encode(List).
do_encode([])-> [];
do_encode([H|T]) when H>=$a, H=<$z ->
[H| encode(T)];
do_encode([H|T]) when H>=$A, H=<$Z ->
[H| encode(T)];
do_encode([H|T]) when H>=$0, H=<$9 ->
[H| encode(T)];
do_encode([H|T]) when H==$- ->
[H| encode(T)];
do_encode([H|T]) when H==$. ->
[H|do_encode(T)];
do_encode([H|T]) when H==$* ->
[H|do_encode(T)];
do_encode([H|T]) ->
to_hex(H) ++ encode(T).
hex(N) when N < 10 ->
$0+N;
hex(N) when N >= 10, N < 16 ->
$a+(N-10).
to_hex(N) when N < 256 ->
[$%, hex(N div 16), hex(N rem 16)].
गलत ऊपर समारोह है? जब कच्चे डेटा हैंडलिंग की बात आती है तो मैं एक नौसिखिया हूं। तो मदद/विचारों की बहुत सराहना की जाती है! धन्यवाद!
मैंने escape_uri() का उपयोग करने की कोशिश की, जिसने एक "यूटोरेंट" से एक अलग परिणाम दिया, ट्रैकर को भेजता है, इसलिए मैंने यह देखने के लिए अपना खुद का कार्यान्वयन करने की कोशिश की कि क्या मुझे सही मूल्य मिल सकता है। यदि यह दिए गए द्विआधारी का सही एन्कोडिंग है तो ट्रैकर को मूल्य भेजा जा रहा है तो अलग कैसे है? – Smokie