hmacSHA384 от C# - PullRequest
       27

hmacSHA384 от C#

0 голосов
/ 18 июня 2020

У меня есть код. PHP код, который генерирует sha384 ha sh string.similar to the below code.

$hash=hash_hmac(“sha384”, $aid .
          $amount .
          $version .
          $currency .
          $mid .
          $mode.
          $request .
          $responsetype, 
          $key);

Я хочу сгенерировать этот ha sh код hmacSHA384 из c#. Я пробовал несколькими способами. но это не сработало, как я ожидал.

string val = string.Concat( int aid, int amount, string version, string currency,int mid, string mode, string request, string responsetype);

private static byte[] hmacSHA384(string val,string key)
            {
                using (HMACSHA384 hmac = new HMACSHA384(Encoding.ASCII.GetBytes(key))
                {
                    return hmac.ComputeHash(Encoding.ASCII.GetBytes(val));
                }
            }

как мне это преобразовать?

1 Ответ

0 голосов
/ 18 июня 2020

В C# вам нужно будет преобразовать каждый элемент в строку, прежде чем вы сможете объединить их. У вас есть несколько вариантов:

  1. вызов .ToString() для каждого значения, затем объединение строк, например,

    string val = aid.ToString() + amount.ToString() + ...
    
  2. используйте String.Format (C# функция, подобная printf), чтобы создать строку

    string val = String.Format("{0}{1}{2}[3}{4}{5}{6}{7}", aid, amount, ... );
    

    , которая будет отображать каждое значение в виде строки по мере ее поступления.

  3. но Новый синтаксис интерполяции строк, вероятно, самый простой способ:

    string val = $"{aid}{amount}{version}{currency}{mid}{mode}{request}{responsetype}";
    
...