使用 Otp.NET + Tencent Authenticator 的组合,构建符合标准、兼容性强、国内可用的双因子验证系统

以控制台为例,nuget需要以下包

Otp.NET

QRCoder (可替换)

 

//
using OtpNet;
using QRCoder;

//简单的使用示例
internal class Program
{
    private static void Main(string[] args)
    {
        //密码随机生成,应该被持久化
        var secret = KeyGeneration.GenerateRandomKey();
        var totp = new Totp(secret);

        //用于显示的一些信息
        var uri = new OtpUri(OtpType.Totp, secret, "user@example.com", "MyApp").ToString();

     //构建二维码
        var qrGenerator = new QRCodeGenerator();
        var qrData = qrGenerator.CreateQrCode(uri, QRCodeGenerator.ECCLevel.Q);
        using PngByteQRCode qrCode = new(qrData);
        byte[] qrCodeImage = qrCode.GetGraphic(20);

        //用于用户绑定 :数盾OTP小程序 (腾讯身份验证器小程序),也可以是手机端App等
        File.WriteAllBytes("test.png", qrCodeImage);

        while (true)
        {
            //用于登录验证或者绑定后验证等
            bool isValid = totp.VerifyTotp(Console.ReadLine(), out long timeStepMatched);
            
            if (isValid)
            {
                Console.WriteLine("Valid:" + timeStepMatched);
            }
            else
            {
                Console.WriteLine("NotValid : " + timeStepMatched);
            }
        }
    }
}

  

✅ 第一步:下载安装

  • 安卓用户:在应用商店或官网(如腾讯应用宝)搜索“腾讯身份验证器”下载安装。
  • iOS用户:在 App Store 搜索“Tencent Authenticator”下载安装。
  • 微信小程序:也可直接搜索“腾讯身份验证器”,“数盾OTP”小程序使用(无需安装App)

✅ 第二步:获取激活二维码或密钥

登录你要绑定验证器的系统,进入以下页面:
  • 路径示例:
    • 首次登录统一身份认证平台,系统会自动弹出二维码 (例如:test.png )

✅ 第三步:扫码或手动添加令牌

打开腾讯身份验证器App或小程序,按以下方式绑定:

📌 方式一:扫码绑定(推荐)

  • 打开App → 点击“二维码激活”或“+” → 允许使用摄像头 → 扫描系统提供的二维码 → 自动添加令牌

📌 方式二:手动输入

  • 若无法扫码,可选择“手动输入” → 输入系统提供的密钥(Secret Key)和账户名 → 完成绑定

✅ 第四步:输入验证码完成绑定

  • 绑定成功后,腾讯身份验证器会显示6位动态验证码(每30秒刷新一次)。
  • 返回系统页面,输入当前验证码 → 点击“确认”或“绑定” → 完成验证

✅ 第五步:后续使用

  • 每次登录系统时,输入用户名密码后,系统会提示输入“动态验证码”。
  • 打开腾讯身份验证器 → 找到对应令牌 → 输入当前6位验证码 → 登录成功。

posted on 2025-08-05 15:14  不会非的猪  阅读(59)  评论(0)    收藏  举报

导航