Перенести с PHP на C#
Формулировка задачи:
Здравствуйте, пожалуйста, помогите перенести данный код на c# Заранее спасибо.
public function ik_sign($param) // интеркасса генератор контрольной цифровой подписи со стороны сервера { $data = $this->ik_sort($param); $ikSign = $data['ik_sign']; // сохраняем приходящую переменную unset($data['ik_sign']); // удаляем придодащую переменную, для генирации подписи $key = ($data['ik_pw_via'] == 'test_interkassa_test_xts') ? $this->ik['test_key'] : $this->ik['key']; if ($data['ik_pw_via'] == 'test_interkassa_test_xts' && !$this->ik['testing']) return false; ksort ($data, SORT_STRING); // сортируем массив array_push($data, $key); // внедряем переменуую $key в массив $signStr = implode(':', $data); // записываем массив в формат @string через : $sign = base64_encode(md5($signStr, true)); // хешируем подпись return ($sign == $ikSign) ? true : false; }
Решение задачи: «Перенести с PHP на C#»
textual
Листинг программы
static bool CheckSign(Dictionary<string, string> data) { const string KEY = "{KEY}"; const string TESTKEY = "{TESTKEY}"; var oldSign = data["ik_sign"]; data.Remove("ik_sign"); var key = data["ik_pw_via"] == "test_interkassa_test_xts" ? TESTKEY : KEY; var array = data.OrderBy(x => x.Key).Select(x => x.Value).ToList(); array.Add(key); var signString = string.Join(":", array); using (var md5 = MD5.Create()) { var bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(signString)); var newSign = Convert.ToBase64String(bytes); return oldSign == newSign; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д