Генерируем коды авторизации Google программным путём

В целях автоматизации авторизации в системах с 2FA может быть полезным научиться генерировать коды авторизации с коротким сроком жизни из кода C# . Например, если в вашей компании используется CheckPoint VPN, который периодически запрашивает пароль в виде <доменный пароль><код Google> , да по несколько раз на дню.

Из исходных данных у нас есть строка вида

otpauth://totp/Company:TOTP113942B9?secret=UKFFEHQQKB46OZX42QUQRYVBE3SSH6OC&issuer=YourCompany

Секретным ключом является secret=UKFFEHQQKB46OZX42QUQRYVBE3SSH6OC . Далее в нашем C# приложении для авторизации подключаем библиотеку

using OtpNet;

И пишем функцию, которая будет возвращать кратковременный код Google из 6 цифр на основе секретного ключа

private string GetGoogleCode()
{
var secretKey = Base32Encoding.ToBytes(» UKFFEHQQKB46OZX42QUQRYVBE3SSH6OC «);
var totp = new Totp(secretKey);
var otp = totp.ComputeTotp();
return otp;
}

Где можно применить этот генератор? К примеру написать приложение, которое сидит в трее и по клику копирует пароль + код Google в буфер обмена для быстрой вставки в строку ввода пароля CheckPoint =)