2016-12-19 17 views
1

Как создать следующий код PHP на C#?create md5 hash (salt + value)

Php код:

<?php 
    $salt = "salt"; 
    $value = "hello"; 
    $password_hashed = md5($salt.$value); 
?> 

Я был бы признателен за любую помощь. Тестирую следующее:

https://stackoverflow.com/a/1300927/7312781

Но это только возвращает неправильную строку.

 var salt = System.Text.Encoding.UTF8.GetBytes("salt"); 
     var value = System.Text.Encoding.UTF8.GetBytes("hello"); 

     var hmacMD5 = new HMACMD5(salt); 
     var saltedHash = hmacMD5.ComputeHash(value); 

     string hex = BitConverter.ToString(saltedHash); 
     MessageBox.Show(hex.Replace("-", "")); 

Ответ: https://gyazo.com/340fe77979c1b0b531d07a8050ce66d1

Ответ должен выглядеть следующим образом: 06decc8b095724f80103712c235586be

+4

Давайте посмотрим вашу попытку –

+1

Что вас означает «нельзя использовать»? В Интернете полно примеров о том, как преобразовать массив байтов в шестнадцатеричный String – SJuan76

+0

обновил мой вопрос – d4ne

ответ

4

Надеется, что это поможет, это некоторая модификация от данной ссылки

class Program { 
    static void Main(string[] args) { 
     var provider = MD5.Create(); 
     string salt = "[email protected]"; 
     string password = "SecretPassword"; 
     byte[] bytes = provider.ComputeHash(Encoding.ASCII.GetBytes(salt + password)); 
     string computedHash = BitConverter.ToString(bytes); 

     Console.WriteLine(computedHash.Replace("-", "")); 
    } 
} 
+0

Работал отлично! Спасибо за помощь! – d4ne

+1

@ d4ne, пожалуйста, не используйте MD5 для обеспечения безопасности. Это полностью нарушено. –

+0

Это не предназначено для пароля, оно предназначено для создания идентификатора билета – d4ne