php代码转C#代码,来个会PHP和C#的高手

public static function oath_hotp($key, $counter)
{
   $bin_counter = pack('N*', 0) . pack('N*', $counter);     // Counter must be 64-bit int
   $hash     = hash_hmac ('sha1', $bin_counter, $key, true);

   return str_pad(self::oath_truncate($hash), self::otpLength, '0', STR_PAD_LEFT);
}

public static function oath_truncate($hash)
{
   $offset = ord($hash[19]) & 0xf;

   return (
       ((ord($hash[$offset+0]) & 0x7f) << 24 ) |
       ((ord($hash[$offset+1]) & 0xff) << 16 ) |
       ((ord($hash[$offset+2]) & 0xff) << 8 ) |
       (ord($hash[$offset+3]) & 0xff)
   ) % pow(10, 6);
}

self::otpLength是类中的一个变量