2015-12-05 6 views
1

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

C#

 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); 

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

ответ

1

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

+1

спасибо :) это работает –

+0

Можете ли вы пометить ответ, как принято тогда? –

Смежные вопросы