Fondamentalement, je construis un petit outil de suivi à des fins expérimentales. Je suis allé assez loin, et je travaille maintenant sur la partie d'annonce.Calcul info_hash de chaîne de requête urlencoded
Ce que je ne peux vraiment pas comprendre comment je dois décoder la chaîne de requête info_hash fournie.
De la spécification, il est un urlencoded SHA1 de 20 octets hachage, qui m'a fait écrire ce code,
byte[] foo = Encoding.Default.GetBytes(HttpUtility.UrlDecode(infoHash));
string temp = "";
foreach (byte b in foo)
{
temp += b.ToString("X");
}
Ce qui donne 'temp' la valeur suivante,
5D3F3F3F3F5E3F3F3F153FE4033683F55693468
Les premiers et derniers caractères sont corrects. Ceci est la première info_hash,
%5d%96%b6%f6%84%5e%ea%da%c5%15%c4%0e%403h%b9Ui4h
Et voici ce à la fois uTorrent et mon propre tracker me donne comme info_hash lors de sa génération à partir du fichier torrent,
5D96B6F6845EEADAC515C40E403368B955693468
Qu'est-ce que je fais mal?
Merci! L'exemple fonctionne comme un charme, bien que lors du remplacement de la chaîne codée en dur avec la chaîne de requête info_hash, il obtient tout foiré. var s = context.Request.QueryString ["info_hash"] Donne-moi une chaîne de charabia, pas la valeur de chaîne de la chaîne de requête. – Viktor
Jamais l'esprit, je suis allé avec la route context.Request.Query à la place. Je suppose que je vais devoir l'analyser à partir de là. Je vous remercie! – Viktor