public static string SignArguments(string sharedSecret, Dictionary<string, string> parameters) { string sum = String.Empty; var paramList = new List<KeyValuePair<string, string>>(parameters); paramList.Sort((KeyValuePair<string, string> x, KeyValuePair<string, string> y) => { return x.Key.CompareTo(y.Key); }); sum += sharedSecret; foreach (KeyValuePair<string, string> pair in paramList) { sum += pair.Key; sum += pair.Value; } return JeffWilcox.Utilities.Silverlight.MD5CryptoServiceProvider.GetMd5String(sum); }