架构师_程序员

查看: 471|回复: 4

[资料] .NET/C# 基于 TOTP 生成一次性密码

[复制链接]
发表于 2020-7-25 18:50:04 | 显示全部楼层
OTP 是 One-Time Password的简写,表示一次性密码。

市场常见的产品:

  • 宁盾令牌
  • 阿里巴巴的身份宝
  • Google的 身份验证器(google-authenticator)
  • QQ 令牌



动态令牌 OTP、TOTP和HOTP 区别
https://www.itsvse.com/thread-9326-1-1.html
Angular 9 系列(十二)基于OTP生成动态令牌
https://www.itsvse.com/thread-9325-1-1.html
微信小程序实现 OTP 动态口令
https://www.itsvse.com/thread-9329-1-1.html

我们新建一个 .NET 4.5 的项目。

nuget安装插件,命令如下:

  1. Install-Package Otp.NET
复制代码
我们尝试每60秒生成一个密码,使用sha1算法,代码如下:

  1. using OtpNet;
  2. using System;
  3. using System.Windows.Forms;

  4. namespace dotnet_otp_demo
  5. {
  6.     public partial class Form1 : Form
  7.     {
  8.         public Form1()
  9.         {
  10.             InitializeComponent();
  11.         }

  12.         private void button1_Click(object sender, EventArgs e)
  13.         {
  14.             var secretKey = Base32Encoding.ToBytes(textBox2.Text);
  15.             var totp = new Totp(secretKey, mode: OtpHashMode.Sha1, step: 60);
  16.             labtime.Text = totp.RemainingSeconds().ToString();
  17.             textBox1.Text = totp.ComputeTotp();
  18.         }
  19.     }
  20. }
复制代码
我找了一个在线 TOTP Token Generator 的网站,该网站默认算法是 sha1。

https://totp.danhersam.com/

尝试运行程序,生成的动态口令如下图:

QQ截图20200725184624.jpg
备注:SecretKey 必须是 base32 字符串,否则会报错如下:

Character is not a Base32 character

源码下载:

游客,如果您要查看本帖隐藏内容请回复


(完)


评分

参与人数 1MB +1 贡献 +1 收起 理由
conntfs + 1 + 1 很给力!

查看全部评分





上一篇:动态令牌 OTP、TOTP和HOTP 区别
下一篇:Now you can provide attr `wx:key` for a `wx:for` to improve.
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-7-28 18:35:33 | 显示全部楼层
来看看,谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-7-28 21:29:28 | 显示全部楼层
NET/C# 基于 TOTP 生成一次性密码
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-10-10 15:08:50 | 显示全部楼层
正想有个客户端认证的解决方案
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-10-13 17:44:56 | 显示全部楼层
看看,谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-10-23 11:02

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表