Если у вас установлен .NET 2.0 (что, я думаю, у вас установлено), то да, он есть.
Он доступен через COM как System.Security.Cryptography.MD5CryptoServiceProvider
и System.Security.Cryptography.HMACSHA1
соответственно.
Бесполезно реализовывать его в C #, поскольку C # опирается на .NET, и .NET уже реализовал его для вас.
P.S. Если в вашей системе нет .NET или вы по какой-то причине отказываетесь от использования .NET / COM, то существует образец с использованием Microsoft Crypto API .