Вы можете использовать HMACMD5 класс:
var hmacMD5 = new HMACMD5(salt);
var saltedHash = hmacMD5.ComputeHash(password);
Работает также с SHA-1, SHA256, SHA384, SHA512 и RIPEMD160:
var hmacSHA1 = new HMACSHA1(salt);
var saltedHash = hmacSHA1.ComputeHash(password);
Оба salt
и password
ожидаются как байтовые массивы.
Если у вас есть строки, вам придется сначала преобразовать их в байты:
var salt = System.Text.Encoding.UTF8.GetBytes("my salt");
var password = System.Text.Encoding.UTF8.GetBytes("my password");