HMACSHA1 эквивалент в PHP

1

Я пытаюсь сделать шифрование с использованием HMACSHA1 как на С#, так и на PHP, но получаю разные результаты. С# часть делается. Я хочу, чтобы часть PHP генерировала такой же результат, как и часть С#.

С#

     string key = "x94IudsnSUWCDSiSxRU5qDSRs88=";
     string text = "The quick brown fox jumps over the lazy dog";

     HMACSHA1 hmac = new HMACSHA1();
     hmac.Key = Convert.FromBase64String(key);
     byte[] hashedData = hmac.ComputeHash(Encoding.UTF8.GetBytes(text));
     string hash = Convert.ToBase64String(hashedData, Base64FormattingOptions.None);
     Console.WriteLine(WebUtility.UrlEncode(hash));

PHP

    $key = "x94IudsnSUWCDSiSxRU5qDSRs88=";
    $text = "The quick brown fox jumps over the lazy dog";

    $hash = base64_encode(hash_hmac('sha1', $text, $key,true));
    echo urlencode($hash);

Результаты: С#: uAG0CDzyuEq7zbQ5ZfpVrb1ZUcA%3D PHP: hx2c5SS6xI%2B8hQBoUqsWQT4KwP4%3D

Теги:
encryption
output
sha1

1 ответ

1
Лучший ответ

Вероятно, вам придется base64decode ключ в php, прежде чем передать его функции hash_hmac

  • 1
    Спасибо, это работает
  • 0
    Можете ли вы пометить ответ как принятый тогда?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню