Перенести с PHP на C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, пожалуйста, помогите перенести данный код на c# Заранее спасибо.
Листинг программы
  1. public function ik_sign($param) // интеркасса генератор контрольной цифровой подписи со стороны сервера
  2. {
  3. $data = $this->ik_sort($param);
  4. $ikSign = $data['ik_sign']; // сохраняем приходящую переменную
  5. unset($data['ik_sign']); // удаляем придодащую переменную, для генирации подписи
  6. $key = ($data['ik_pw_via'] == 'test_interkassa_test_xts') ? $this->ik['test_key'] : $this->ik['key'];
  7. if ($data['ik_pw_via'] == 'test_interkassa_test_xts' && !$this->ik['testing']) return false;
  8. ksort ($data, SORT_STRING); // сортируем массив
  9. array_push($data, $key); // внедряем переменуую $key в массив
  10. $signStr = implode(':', $data); // записываем массив в формат @string через :
  11. $sign = base64_encode(md5($signStr, true)); // хешируем подпись
  12. return ($sign == $ikSign) ? true : false;
  13. }

Решение задачи: «Перенести с PHP на C#»

textual
Листинг программы
  1. static bool CheckSign(Dictionary<string, string> data)
  2.         {
  3.             const string KEY = "{KEY}";
  4.             const string TESTKEY = "{TESTKEY}";
  5.  
  6.             var oldSign = data["ik_sign"];
  7.             data.Remove("ik_sign");
  8.  
  9.             var key = data["ik_pw_via"] == "test_interkassa_test_xts" ? TESTKEY : KEY;
  10.  
  11.             var array = data.OrderBy(x => x.Key).Select(x => x.Value).ToList();
  12.             array.Add(key);
  13.  
  14.             var signString = string.Join(":", array);
  15.  
  16.             using (var md5 = MD5.Create())
  17.             {
  18.                 var bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(signString));
  19.  
  20.                 var newSign = Convert.ToBase64String(bytes);
  21.  
  22.                 return oldSign == newSign;
  23.             }
  24.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут