public static void Main()
Console.WriteLine("Hello World");
var headBase32Bytes = GetRandomSecret();
var tailBase32Bytes = GetRandomSecret();
var headTotp = new Totp(headBase32Bytes, 30, OtpHashMode.Sha256, totpSize:8);
var tailTotp = new Totp(tailBase32Bytes, 30, OtpHashMode.Sha256, totpSize:8);
var dateTime = DateTime.Now;
var headTotpCode = headTotp.ComputeTotp(dateTime);
var tailTotpCode = tailTotp.ComputeTotp(dateTime);
var randomCode = $"{headTotpCode}{tailTotpCode}";
Console.WriteLine($"random code is : {randomCode}");
private static byte[] GetRandomSecret()
var key = KeyGeneration.GenerateRandomKey(20);
var base32String = Base32Encoding.ToString(key);
var base32Bytes = OtpNet.Base32Encoding.ToBytes(base32String);