login  Naam:   Wachtwoord: 
Registreer je!
 Forum

C# WP7 Signature Genereren (Opgelost)

Offline larssy1 - 21/11/2011 18:38
Avatar van larssy1MySQL beginner Hoi mensen,,

Iemand die mij kan vertellen wat er hier fout gaat??

Het is de bedoeling dat er zo'n signature uitkomt:
Citaat:
[sig] => YjtLTh8A_wSl4Spim2gssM5QAZ8AtaZxIZmGu4je5Tk )


Echter komt er dit uit:
Citaat:
[sig] => OTRFOTg4NzRGMTJBNzE0MTVDMTcyRDNENDJGM0Q1RkU1OUE2RUI1NzczMDIxMzNFODA1RjM1NzRDMEM4M0I0MQ== )


De code die word gebruikt in PHP (Bovenste output)
  1. global $BF3APIKey;
  2. // Convert data to JSON
  3. $urlbase64=array('+'=>'-','/'=>'_','='=>'');
  4. $data=strtr(base64_encode(json_encode($data)),$urlbase64);
  5.  
  6. $postdata=array();
  7. $postdata['data']=$data;
  8. $postdata['sig']=strtr(base64_encode(hash_hmac('sha256',$data,$BF3APIKey,true)),$urlbase64);


De code die word gebruikt in C# (Onderste output)
  1. public void Information()
  2. {
  3. DateTime now = DateTime.Now;
  4. TimeSpan t = (now - new DateTime(1970, 1, 1).ToLocalTime());
  5. int timestamp = (int)t.TotalSeconds;
  6.  
  7. string data;
  8.  
  9. jsonData JD = new jsonData();
  10.  
  11. JD.clientident = "";
  12. JD.ident = AppIdentMaster;
  13. JD.time = timestamp.ToString();
  14. JD.name = "";
  15.  
  16. data = JsonConvert.SerializeObject(JD);
  17.  
  18. string _data = base64Encode(data);
  19.  
  20. string _sig = Sig(_data, seckey);
  21. }
  22.  
  23. public static string Sig(string _data, string _key)
  24. {
  25.  
  26. string message = _data;
  27. string key = _key;
  28.  
  29. var hmacsha256 = new HMACSHA256(Encoding.UTF8.GetBytes(key));
  30. hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(message));
  31.  
  32. string s = "";
  33.  
  34. foreach (byte test in hmacsha256.Hash)
  35. {
  36. s += test.ToString("X2");
  37. }
  38.  
  39. s = s.Replace("+", "-").Replace("/", "_").Replace("=", string.Empty);
  40.  
  41. return base64Encode(s);
  42. }
  43.  
  44.  
  45. public static string base64Encode(string data)
  46. {
  47. try
  48. {
  49. byte[] encData_byte = new byte[data.Length];
  50. encData_byte = System.Text.Encoding.UTF8.GetBytes(data);
  51. string encodedData = Convert.ToBase64String(encData_byte);
  52. return encodedData;
  53. }
  54. catch (Exception e)
  55. {
  56. return "error";
  57. }
  58. }

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s