/// <summary> /// generate one time password key /// </summary> /// <returns></returns> public static string GenerateOTPKey() { OathNet.Key key = new OathNet.Key(); return key.Base32; }
/// <summary> /// generate one time password for sms /// </summary> /// <param name="counter">counter</param> /// <returns></returns> public static string GenerateSmsOTP(string keyStr, int counter) { int otpDigits = 6; var key = new OathNet.Key(keyStr); var otp = new OathNet.CounterBasedOtpGenerator(key, otpDigits); return otp.GenerateOtp(counter); }
/// <summary> /// generate one time password for google authentication /// </summary> /// <param name="keyStr">keyStr</param> /// <returns></returns> public static string GenerateGoogleAuthOTP(string keyStr) { int otpDigits = 6; var key = new OathNet.Key(keyStr); var otp = new OathNet.TimeBasedOtpGenerator(key, otpDigits); return otp.GenerateOtp(DateTime.UtcNow); }