使用 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位验证码 → 登录成功。
浙公网安备 33010602011771号