Как исправить мой PHP-код, чтобы получить тот же хэш-ключ, что и код C # - PullRequest
0 голосов
/ 11 июля 2019

Я хочу, чтобы мой код PHP выполнял те же функции, что и код C #, с кодом SHA2 256

c # Code

string HashSHA2(string input)
{
   SHA256 sha256Hash = SHA256.Create();
   byte[] hash = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
   return string.Join("", hash.Select(b => b.ToString("x2")).ToArray());
}

, и это мой код PHP:

/**
 * @param $input
 * @return string
 */
function HashSHA2($input)
{
    $utfInput = utf8_encode($input);
    $hash = hash_hmac('sha256', $utfInput, true);

    $byte_array = unpack('H*', $hash);
    $e = '';
    foreach ($byte_array as $element)
    {
        $e .= hex2bin(md5($element));
    }
    $returned = base64_encode($e);
    return $returned;
}

Так что, пожалуйста, кто-нибудь может мне помочь, так как я не очень хорошо разбираюсь в .NET

с PHP 5.6

Объект запроса, переданный в качестве ввода в хеш-код:

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

и результат хеширования:

ac9968952f3e108ac2d0ed6da6dc5876fb18140cc40340c1a50e19d64708cfac
...